diff --git a/.agents/skills/custom-commands/SKILL.md b/.agents/skills/custom-commands/SKILL.md
index d031e55..b55f770 100644
--- a/.agents/skills/custom-commands/SKILL.md
+++ b/.agents/skills/custom-commands/SKILL.md
@@ -96,9 +96,6 @@ with the following sub-clients:
| `client.snapshots` | `elevenlabs_sdk::api::SnapshotsClient` | snapshots operations |
| `client.chapters` | `elevenlabs_sdk::api::ChaptersClient` | chapters operations |
| `client.snapshots` | `elevenlabs_sdk::api::SnapshotsClient2` | snapshots operations |
-| `client.music` | `elevenlabs_sdk::api::MusicClient` | music operations |
-| `client.composition_plan` | `elevenlabs_sdk::api::CompositionPlanClient` | composition_plan operations |
-| `client.finetunes` | `elevenlabs_sdk::api::FinetunesClient` | finetunes operations |
| `client.dubbing` | `elevenlabs_sdk::api::DubbingClient` | dubbing operations |
| `client.project` | `elevenlabs_sdk::api::ProjectClient` | project operations |
| `client.language` | `elevenlabs_sdk::api::LanguageClient` | language operations |
@@ -131,10 +128,13 @@ with the following sub-clients:
| `client.service_accounts` | `elevenlabs_sdk::api::ServiceAccountsClient` | service_accounts operations |
| `client.api_keys` | `elevenlabs_sdk::api::ApiKeysClient` | api_keys operations |
| `client.webhooks` | `elevenlabs_sdk::api::WebhooksClient` | webhooks operations |
+| `client.music` | `elevenlabs_sdk::api::MusicClient` | music operations |
+| `client.composition_plan` | `elevenlabs_sdk::api::CompositionPlanClient` | composition_plan operations |
+| `client.finetunes` | `elevenlabs_sdk::api::FinetunesClient` | finetunes operations |
| `client.speech_to_text` | `elevenlabs_sdk::api::SpeechToTextClient` | speech_to_text operations |
| `client.transcripts` | `elevenlabs_sdk::api::TranscriptsClient2` | transcripts operations |
| `client.forced_alignment` | `elevenlabs_sdk::api::ForcedAlignmentClient` | forced_alignment operations |
-| `client.conversational_ai` | `elevenlabs_sdk::api::ConversationalAiClient` | conversational_ai operations |
+| `client.agents` | `elevenlabs_sdk::api::AgentsClient` | agents operations |
| `client.conversations` | `elevenlabs_sdk::api::ConversationsClient` | conversations operations |
| `client.audio` | `elevenlabs_sdk::api::AudioClient` | audio operations |
| `client.feedback` | `elevenlabs_sdk::api::FeedbackClient` | feedback operations |
@@ -146,17 +146,17 @@ with the following sub-clients:
| `client.twilio` | `elevenlabs_sdk::api::TwilioClient` | twilio operations |
| `client.exotel` | `elevenlabs_sdk::api::ExotelClient` | exotel operations |
| `client.whatsapp` | `elevenlabs_sdk::api::WhatsappClient` | whatsapp operations |
-| `client.agents` | `elevenlabs_sdk::api::AgentsClient` | agents operations |
| `client.summaries` | `elevenlabs_sdk::api::SummariesClient` | summaries operations |
| `client.widget` | `elevenlabs_sdk::api::WidgetClient` | widget operations |
| `client.avatar` | `elevenlabs_sdk::api::AvatarClient` | avatar operations |
| `client.link` | `elevenlabs_sdk::api::LinkClient` | link operations |
-| `client.knowledge_base` | `elevenlabs_sdk::api::KnowledgeBaseClient2` | knowledge_base operations |
-| `client.llm_usage` | `elevenlabs_sdk::api::LlmUsageClient2` | llm_usage operations |
-| `client.branches` | `elevenlabs_sdk::api::BranchesClient` | branches operations |
-| `client.versions` | `elevenlabs_sdk::api::VersionsClient` | versions operations |
-| `client.deployments` | `elevenlabs_sdk::api::DeploymentsClient` | deployments operations |
-| `client.drafts` | `elevenlabs_sdk::api::DraftsClient` | drafts operations |
+| `client.knowledge_base` | `elevenlabs_sdk::api::KnowledgeBaseClient` | knowledge_base operations |
+| `client.documents` | `elevenlabs_sdk::api::DocumentsClient` | documents operations |
+| `client.summaries` | `elevenlabs_sdk::api::SummariesClient2` | summaries operations |
+| `client.chunk` | `elevenlabs_sdk::api::ChunkClient` | chunk operations |
+| `client.chunks` | `elevenlabs_sdk::api::ChunksClient` | chunks operations |
+| `client.crawl_jobs` | `elevenlabs_sdk::api::CrawlJobsClient` | crawl_jobs operations |
+| `client.document` | `elevenlabs_sdk::api::DocumentClient` | document operations |
| `client.tests` | `elevenlabs_sdk::api::TestsClient` | tests operations |
| `client.folders` | `elevenlabs_sdk::api::FoldersClient` | folders operations |
| `client.invocations` | `elevenlabs_sdk::api::InvocationsClient` | invocations operations |
@@ -164,12 +164,6 @@ with the following sub-clients:
| `client.phone_numbers` | `elevenlabs_sdk::api::PhoneNumbersClient` | phone_numbers operations |
| `client.llm_usage` | `elevenlabs_sdk::api::LlmUsageClient` | llm_usage operations |
| `client.llm` | `elevenlabs_sdk::api::LlmClient` | llm operations |
-| `client.knowledge_base` | `elevenlabs_sdk::api::KnowledgeBaseClient` | knowledge_base operations |
-| `client.documents` | `elevenlabs_sdk::api::DocumentsClient` | documents operations |
-| `client.summaries` | `elevenlabs_sdk::api::SummariesClient2` | summaries operations |
-| `client.chunk` | `elevenlabs_sdk::api::ChunkClient` | chunk operations |
-| `client.chunks` | `elevenlabs_sdk::api::ChunksClient` | chunks operations |
-| `client.document` | `elevenlabs_sdk::api::DocumentClient` | document operations |
| `client.tools` | `elevenlabs_sdk::api::ToolsClient` | tools operations |
| `client.executions` | `elevenlabs_sdk::api::ExecutionsClient` | executions operations |
| `client.settings` | `elevenlabs_sdk::api::SettingsClient` | settings operations |
@@ -182,6 +176,12 @@ with the following sub-clients:
| `client.tool_approvals` | `elevenlabs_sdk::api::ToolApprovalsClient` | tool_approvals operations |
| `client.tool_configs` | `elevenlabs_sdk::api::ToolConfigsClient` | tool_configs operations |
| `client.whatsapp_accounts` | `elevenlabs_sdk::api::WhatsappAccountsClient` | whatsapp_accounts operations |
+| `client.branches` | `elevenlabs_sdk::api::BranchesClient` | branches operations |
+| `client.versions` | `elevenlabs_sdk::api::VersionsClient` | versions operations |
+| `client.deployments` | `elevenlabs_sdk::api::DeploymentsClient` | deployments operations |
+| `client.drafts` | `elevenlabs_sdk::api::DraftsClient` | drafts operations |
+| `client.agents` | `elevenlabs_sdk::api::AgentsClient2` | agents operations |
+| `client.llm_usage` | `elevenlabs_sdk::api::LlmUsageClient2` | llm_usage operations |
| `client.analytics` | `elevenlabs_sdk::api::AnalyticsClient` | analytics operations |
| `client.live_count` | `elevenlabs_sdk::api::LiveCountClient` | live_count operations |
| `client.dashboard` | `elevenlabs_sdk::api::DashboardClient` | dashboard operations |
diff --git a/Cargo.lock b/Cargo.lock
index bf281a7..e051ee9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,6 +2,12 @@
# It is not intended for manual editing.
version = 4
+[[package]]
+name = "adler2"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
+
[[package]]
name = "aho-corasick"
version = "1.1.4"
@@ -11,6 +17,15 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "anstream"
version = "1.0.0"
@@ -77,12 +92,52 @@ dependencies = [
"serde_json",
]
+[[package]]
+name = "async-compression"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac"
+dependencies = [
+ "compression-codecs",
+ "compression-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "async-stream"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "atomic-waker"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+[[package]]
+name = "autocfg"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
+
[[package]]
name = "base64"
version = "0.22.1"
@@ -144,6 +199,20 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+[[package]]
+name = "chrono"
+version = "0.4.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
+dependencies = [
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-link",
+]
+
[[package]]
name = "clap"
version = "4.6.1"
@@ -219,6 +288,23 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "compression-codecs"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf"
+dependencies = [
+ "compression-core",
+ "flate2",
+ "memchr",
+]
+
+[[package]]
+name = "compression-core"
+version = "0.4.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789"
+
[[package]]
name = "core-foundation"
version = "0.9.4"
@@ -254,6 +340,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "crc32fast"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
+dependencies = [
+ "cfg-if",
+]
+
[[package]]
name = "crossbeam-channel"
version = "0.5.15"
@@ -365,6 +460,37 @@ version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
+[[package]]
+name = "elevenlabs_sdk"
+version = "0.1.0"
+dependencies = [
+ "base64",
+ "bytes",
+ "chrono",
+ "elevenlabs_types",
+ "futures",
+ "pin-project",
+ "reqwest",
+ "reqwest-sse",
+ "serde",
+ "serde_json",
+ "thiserror 1.0.69",
+ "tokio",
+]
+
+[[package]]
+name = "elevenlabs_types"
+version = "0.0.0"
+dependencies = [
+ "base64",
+ "chrono",
+ "num-bigint",
+ "ordered-float",
+ "reqwest",
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "equivalent"
version = "1.0.2"
@@ -394,9 +520,9 @@ dependencies = [
"anyhow",
"base64",
"bytes",
+ "clap",
"clap_complete",
"clap_mangen",
- "clap",
"dotenvy",
"elevenlabs_sdk",
"form_urlencoded",
@@ -410,21 +536,21 @@ dependencies = [
"rand 0.8.6",
"reqwest",
"secrecy",
- "serde_json_path",
+ "serde",
"serde_json",
+ "serde_json_path",
"serde_qs",
"serde_yaml",
- "serde",
"serial_test",
"sha2",
"tempfile",
"thiserror 2.0.18",
+ "tokio",
"tokio-tungstenite",
"tokio-util",
- "tokio",
+ "tracing",
"tracing-appender",
"tracing-subscriber",
- "tracing",
"unicode-normalization",
"webbrowser",
"wiremock",
@@ -436,6 +562,16 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
+[[package]]
+name = "flate2"
+version = "1.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
[[package]]
name = "fnv"
version = "1.0.7"
@@ -770,6 +906,30 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "iana-time-zone"
+version = "0.1.65"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "log",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
[[package]]
name = "icu_collections"
version = "2.2.0"
@@ -1090,6 +1250,16 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+[[package]]
+name = "miniz_oxide"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
+dependencies = [
+ "adler2",
+ "simd-adler32",
+]
+
[[package]]
name = "mio"
version = "1.2.1"
@@ -1143,12 +1313,41 @@ dependencies = [
"windows-sys 0.61.2",
]
+[[package]]
+name = "num-bigint"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367"
+dependencies = [
+ "num-integer",
+ "num-traits",
+ "serde",
+]
+
[[package]]
name = "num-conv"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
[[package]]
name = "num_cpus"
version = "1.17.0"
@@ -1249,6 +1448,17 @@ dependencies = [
"vcpkg",
]
+[[package]]
+name = "ordered-float"
+version = "4.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
+dependencies = [
+ "num-traits",
+ "rand 0.8.6",
+ "serde",
+]
+
[[package]]
name = "parking_lot"
version = "0.12.5"
@@ -1278,6 +1488,26 @@ version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
+[[package]]
+name = "pin-project"
+version = "1.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "pin-project-lite"
version = "0.2.17"
@@ -1408,6 +1638,7 @@ dependencies = [
"libc",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
+ "serde",
]
[[package]]
@@ -1447,6 +1678,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
"getrandom 0.2.17",
+ "serde",
]
[[package]]
@@ -1506,6 +1738,7 @@ dependencies = [
"bytes",
"futures-core",
"futures-util",
+ "h2",
"http",
"http-body",
"http-body-util",
@@ -1541,6 +1774,19 @@ dependencies = [
"web-sys",
]
+[[package]]
+name = "reqwest-sse"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60e0aedd78f3626aad0ac3352f6128b73d3b617080da13fbaf8d168dad82de89"
+dependencies = [
+ "async-stream",
+ "reqwest",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+]
+
[[package]]
name = "ring"
version = "0.17.14"
@@ -1925,6 +2171,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "simd-adler32"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
+
[[package]]
name = "simd_cesu8"
version = "1.1.1"
@@ -2193,6 +2445,17 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "tokio-stream"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
[[package]]
name = "tokio-tungstenite"
version = "0.24.0"
@@ -2245,12 +2508,17 @@ version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840"
dependencies = [
+ "async-compression",
"bitflags",
"bytes",
+ "futures-core",
"futures-util",
"http",
"http-body",
+ "http-body-util",
"pin-project-lite",
+ "tokio",
+ "tokio-util",
"tower",
"tower-layer",
"tower-service",
@@ -2617,12 +2885,65 @@ dependencies = [
"windows-sys 0.61.2",
]
+[[package]]
+name = "windows-core"
+version = "0.62.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
+dependencies = [
+ "windows-implement",
+ "windows-interface",
+ "windows-link",
+ "windows-result",
+ "windows-strings",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.59.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "windows-link"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+[[package]]
+name = "windows-result"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
+dependencies = [
+ "windows-link",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
+dependencies = [
+ "windows-link",
+]
+
[[package]]
name = "windows-sys"
version = "0.52.0"
@@ -2936,27 +3257,3 @@ name = "zmij"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
-
-[[package]]
-name = "elevenlabs_types"
-version = "0.0.0"
-dependencies = [
- "base64",
- "chrono",
- "num-bigint",
- "ordered-float",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "elevenlabs_sdk"
-version = "0.0.0"
-dependencies = [
- "elevenlabs_types",
- "futures",
- "reqwest",
- "serde",
- "serde_json",
- "tokio",
-]
diff --git a/cli/elevenlabs/openapi0.json b/cli/elevenlabs/openapi0.json
index 2b728d6..de03121 100644
--- a/cli/elevenlabs/openapi0.json
+++ b/cli/elevenlabs/openapi0.json
@@ -1 +1 @@
-{"openapi":"3.1.0","info":{"title":"ElevenLabs API Documentation","description":"This is the documentation for the ElevenLabs API. You can use this API to use our service programmatically, this is done by using your API key. You can find your API key in the dashboard at https://elevenlabs.io/app/settings/api-keys.","version":"1.0"},"paths":{"/v1/history":{"get":{"operationId":"get_speech_history","summary":"Get generated items","description":"Returns a list of your generated audio (e.g. text to speech, speech to speech, Studio, dubbing). Music and SFX generations are not included and cannot currently be retrieved via the API.","parameters":[{"name":"page_size","in":"query","description":"How many history items to return at maximum. Can not exceed 1000, defaults to 100.","required":false,"schema":{"description":"How many history items to return at maximum. Can not exceed 1000, defaults to 100.","type":"integer","default":100,"title":"Page Size"}},{"name":"start_after_history_item_id","in":"query","description":"After which ID to start fetching, use this parameter to paginate across a large collection of history items. In case this parameter is not provided history items will be fetched starting from the most recently created one ordered descending by their creation date.","required":false,"schema":{"description":"After which ID to start fetching, use this parameter to paginate across a large collection of history items. In case this parameter is not provided history items will be fetched starting from the most recently created one ordered descending by their creation date.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start After History Item Id"}},{"name":"voice_id","in":"query","description":"ID of the voice to be filtered for. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":false,"schema":{"description":"Voice ID to be filtered for, you can use GET https://api.elevenlabs.io/v1/voices to receive a list of voices and their IDs.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"}},{"name":"model_id","in":"query","description":"Search term used for filtering history items. If provided, source becomes required.","required":false,"schema":{"description":"Model ID to filter history items by.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["eleven_turbo_v2","eleven_multilingual_v2"],"title":"Model Id"}},{"name":"date_before_unix","in":"query","description":"Unix timestamp to filter history items before this date (exclusive).","required":false,"schema":{"description":"Unix timestamp to filter history items before this date (exclusive).","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[1640995200],"title":"Date Before Unix"}},{"name":"date_after_unix","in":"query","description":"Unix timestamp to filter history items after this date (inclusive).","required":false,"schema":{"description":"Unix timestamp to filter history items after this date (inclusive).","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[1640995200],"title":"Date After Unix"}},{"name":"sort_direction","in":"query","description":"Sort direction for the results.","required":false,"schema":{"description":"Sort direction for the results.","default":"desc","anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"examples":["desc","asc"],"title":"Sort Direction"}},{"name":"search","in":"query","description":"search term used for filtering","required":false,"schema":{"description":"search term used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the land far far away"],"title":"Search"}},{"name":"source","in":"query","description":"Source of the generated history item","required":false,"schema":{"description":"Source of the generated history item","anyOf":[{"enum":["TTS","STS","Flows"],"type":"string"},{"type":"null"}],"examples":["TTS"],"title":"Source"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpeechHistoryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"list"}},"/v1/history/{history_item_id}":{"get":{"operationId":"get_speech_history_item_by_id","summary":"Get history item","description":"Retrieves a history item.","parameters":[{"name":"history_item_id","in":"path","description":"ID of the history item to be used. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items.","required":true,"schema":{"description":"History item ID to be used, you can use GET https://api.elevenlabs.io/v1/history to receive a list of history items and their IDs.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechHistoryItemResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_speech_history_item","summary":"Delete history item","description":"Delete a history item by its ID","parameters":[{"name":"history_item_id","in":"path","description":"ID of the history item to be used. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items.","required":true,"schema":{"description":"History item ID to be used, you can use GET https://api.elevenlabs.io/v1/history to receive a list of history items and their IDs.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHistoryItemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"delete"}},"/v1/history/{history_item_id}/audio":{"get":{"operationId":"get_audio_full_from_speech_history_item","summary":"Get audio from history item","description":"Returns the audio of an history item.","parameters":[{"name":"history_item_id","in":"path","description":"ID of the history item to be used. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items.","required":true,"schema":{"description":"History item ID to be used, you can use GET https://api.elevenlabs.io/v1/history to receive a list of history items and their IDs.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The audio file of the history item.","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"get_audio"}},"/v1/history/download":{"post":{"operationId":"download_speech_history_items","summary":"Download history items","description":"Download one or more history items. If one history item ID is provided, we will return a single audio file. If more than one history item IDs are provided, we will provide the history items packed into a .zip file.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Download_history_items_v1_history_download_post"}}}},"responses":{"200":{"description":"The requested audio file, or a zip file containing multiple audio files when multiple history items are requested.","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}}},"example":{"error":"invalid_output_format","message":"output_format must be wav or none"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"download","properties":[{"description":"IDs of the history items to be downloaded. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items."}]}},"/v1/sound-generation":{"post":{"operationId":"sound_generation","summary":"Create sound effect","description":"Turn text into sound effects for your videos, voice-overs or video games using the most advanced sound effects models in the world.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Sound_Generation_v1_sound_generation_post"}}}},"responses":{"200":{"description":"The generated sound effect as an MP3 file","headers":{"character-cost":{"description":"The number of characters used for billing","schema":{"type":"string"}}},"content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["sound-generation"],"x-fern-sdk-group-name":"text_to_sound_effects","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"text":"Spacious braam suitable for high-impact movie trailer moments"}}]}},"/v1/audio-isolation":{"post":{"operationId":"audio_isolation","summary":"Audio isolation","description":"Removes background noise from audio.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Audio_Isolation_v1_audio_isolation_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"convert"}},"/v1/audio-isolation/history":{"get":{"operationId":"get_audio_isolation_history","summary":"Get Audio Isolation History","description":"Returns a list of all your audio isolation generations.","parameters":[{"name":"page_size","in":"query","description":"How many history items to return at maximum. Defaults to 100.","required":false,"schema":{"description":"How many history items to return at maximum. Defaults to 100.","type":"integer","default":100,"maximum":1000,"minimum":1,"title":"Page Size"}},{"name":"page","in":"query","description":"Page number for search pagination (1-based). Only used when search is provided.","required":false,"schema":{"description":"Page number for search pagination (1-based). Only used when search is provided.","type":"integer","default":1,"minimum":1,"title":"Page"}},{"name":"search","in":"query","description":"Optional search term used for filtering audio isolation history (title/text).","required":false,"schema":{"description":"Optional search term used for filtering audio isolation history (title/text).","anyOf":[{"type":"string"},{"type":"null"}],"examples":["podcast","lecture"],"title":"Search"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAudioIsolationHistoryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"list"}},"/v1/audio-isolation/history/{history_item_id}":{"delete":{"operationId":"delete_audio_isolation_history_item","summary":"Delete Audio Isolation History Item","description":"Deletes a specific audio isolation history item and the associated media files.","parameters":[{"name":"history_item_id","in":"path","description":"Identifier of the audio isolation history item.","required":true,"schema":{"description":"Identifier of the audio isolation history item.","type":"string","title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"delete"}},"/v1/audio-isolation/stream":{"post":{"operationId":"audio_isolation_stream","summary":"Audio isolation stream","description":"Removes background noise from audio.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Audio_Isolation_Stream_v1_audio_isolation_stream_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/voices/{voice_id}/samples/{sample_id}":{"delete":{"operationId":"delete_sample","summary":"Delete voice sample","description":"Removes a sample by its ID.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"ID of the sample to be used. You can use the [Get voices](/docs/api-reference/voices/get) endpoint list all the available samples for a voice.","required":true,"schema":{"description":"Sample ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id} to list all the available samples for a voice.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSampleResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["samples"],"x-fern-sdk-group-name":"samples","x-fern-sdk-method-name":"delete"}},"/v1/voices/{voice_id}/samples/{sample_id}/audio":{"get":{"operationId":"get_audio_from_sample","summary":"Get audio from sample","description":"Returns the audio corresponding to a sample attached to a voice.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"ID of the sample to be used. You can use the [Get voices](/docs/api-reference/voices/get) endpoint list all the available samples for a voice.","required":true,"schema":{"description":"Sample ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id} to list all the available samples for a voice.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"audio/*":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["samples"],"x-fern-sdk-group-name":["voices","samples","audio"],"x-fern-sdk-method-name":"get"}},"/v1/text-to-speech/{voice_id}":{"post":{"operationId":"text_to_speech_full","summary":"Create speech","description":"Converts text into speech using a voice of your choice and returns audio.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_full","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"The generated audio file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"text":"The first move is what sets everything in motion.","model_id":"eleven_multilingual_v2"}}]}},"/v1/text-to-speech/{voice_id}/with-timestamps":{"post":{"operationId":"text_to_speech_full_with_timestamps","summary":"Create speech with timing","description":"Generate speech from text with precise character-level timing information for audio-text synchronization.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_full_with_timestamps","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioWithTimestampsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"convert_with_timestamps"}},"/v1/text-to-speech/{voice_id}/stream":{"post":{"operationId":"text_to_speech_stream","summary":"Stream speech","description":"Converts text into speech using a voice of your choice and returns audio as an audio stream.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_stream","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"stream","x-fern-streaming":true,"x-fern-request-name":"StreamTextToSpeechRequest","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"text":"The first move is what sets everything in motion.","model_id":"eleven_multilingual_v2"}}]}},"/v1/text-to-speech/{voice_id}/stream/with-timestamps":{"post":{"operationId":"text_to_speech_stream_with_timestamps","summary":"Stream speech with timing","description":"Converts text into speech using a voice of your choice and returns a stream of JSONs containing audio as a base64 encoded string together with information on when which character was spoken.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_stream_with_timestamps","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Stream of transcription chunks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamingAudioChunkWithTimestampsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"stream_with_timestamps","x-fern-streaming":true,"x-fern-request-name":"StreamTextToSpeechWithTimestampsRequest","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"text":"The first move is what sets everything in motion.","model_id":"eleven_multilingual_v2"}}]}},"/v1/text-to-dialogue":{"post":{"operationId":"text_to_dialogue","summary":"Create dialogue","description":"Converts a list of text and voice ID pairs into speech (dialogue) and returns audio.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","anyOf":[{"$ref":"#/components/schemas/NonStreamingOutputFormats"},{"$ref":"#/components/schemas/AllowedOutputFormats"}],"enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Text_to_dialogue__multi_voice__v1_text_to_dialogue_post","properties":{"settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"The generated audio file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"inputs":[{"text":"[giggling] Knock knock","voice_id":"JBFqnCBsd6RMkjVDRZzb"},{"text":"[curious] Who is there?","voice_id":"Aw4FAjKCGjjNkVhN1Xmq"}]}}]}},"/v1/text-to-dialogue/stream":{"post":{"operationId":"text_to_dialogue_stream","summary":"Stream dialogue","description":"Converts a list of text and voice ID pairs into speech (dialogue) and returns an audio stream.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Text_to_dialogue__multi_voice__streaming_v1_text_to_dialogue_stream_post","properties":{"settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"stream","x-fern-streaming":true,"x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"inputs":[{"text":"[giggling] Knock knock","voice_id":"JBFqnCBsd6RMkjVDRZzb"},{"text":"[curious] Who is there?","voice_id":"Aw4FAjKCGjjNkVhN1Xmq"}]}}]}},"/v1/text-to-dialogue/stream/with-timestamps":{"post":{"operationId":"text_to_dialogue_stream_with_timestamps","summary":"Text To Dialogue Streaming With Timestamps","description":"Converts a list of text and voice ID pairs into speech (dialogue) and returns a stream of JSON blobs containing audio as a base64 encoded string and timestamps","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_dialogue_stream_with_timestamps"}}}},"responses":{"200":{"description":"Stream of transcription chunks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"stream_with_timestamps","x-fern-streaming":true}},"/v1/text-to-dialogue/with-timestamps":{"post":{"operationId":"text_to_dialogue_full_with_timestamps","summary":"Text To Dialogue With Timestamps","description":"Generate dialogue from text with precise character-level timing information for audio-text synchronization.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","anyOf":[{"$ref":"#/components/schemas/NonStreamingOutputFormats"},{"$ref":"#/components/schemas/AllowedOutputFormats"}],"enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_dialogue_full_with_timestamps"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioWithTimestampsAndVoiceSegmentsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"convert_with_timestamps"}},"/v1/speech-to-speech/{voice_id}":{"post":{"operationId":"speech_to_speech_full","summary":"Voice changer","description":"Transform audio from one voice to another. Maintain full control over emotion, timing and delivery.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Speech_to_Speech_v1_speech_to_speech__voice_id__post"}}}},"responses":{"200":{"description":"The generated audio file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-speech"],"x-fern-sdk-group-name":"speech_to_speech","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"model_id":"eleven_multilingual_sts_v2"}}]}},"/v1/speech-to-speech/{voice_id}/stream":{"post":{"operationId":"speech_to_speech_stream","summary":"Voice changer stream","description":"Stream audio from one voice to another. Maintain full control over emotion, timing and delivery.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Speech_to_Speech_Streaming_v1_speech_to_speech__voice_id__stream_post"}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-speech"],"x-fern-sdk-group-name":"speech_to_speech","x-fern-sdk-method-name":"stream","x-fern-streaming":true,"x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"model_id":"eleven_multilingual_sts_v2"}}]}},"/v1/text-to-voice/create-previews":{"post":{"operationId":"text_to_voice","summary":"Voice design","description":"Create a voice from a text prompt.","parameters":[{"name":"output_format","in":"query","description":"The output format of the generated audio.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_192","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"create_previews"}},"/v1/text-to-voice":{"post":{"operationId":"create_voice","summary":"Create A New Voice From Voice Preview","description":"Create a voice from previously generated voice preview. This endpoint should be called after you fetched a generated_voice_id using POST /v1/text-to-voice/design or POST /v1/text-to-voice/:voice_id/remix.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"create"}},"/v1/text-to-voice/design":{"post":{"operationId":"text_to_voice_design","summary":"Design A Voice.","description":"Design a voice via a prompt. This method returns a list of voice previews. Each preview has a generated_voice_id and a sample of the voice as base64 encoded mp3 audio. To create a voice use the generated_voice_id of the preferred preview with the /v1/text-to-voice endpoint.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_192","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceDesignRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"design"}},"/v1/text-to-voice/{voice_id}/remix":{"post":{"operationId":"text_to_voice_remix","summary":"Remix A Voice.","description":"Remix an existing voice via a prompt. This method returns a list of voice previews. Each preview has a generated_voice_id and a sample of the voice as base64 encoded mp3 audio. To create a voice use the generated_voice_id of the preferred preview with the /v1/text-to-voice endpoint.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_192","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceRemixRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"remix"}},"/v1/text-to-voice/{generated_voice_id}/stream":{"get":{"operationId":"text_to_voice_preview_stream","summary":"Text To Voice Preview Streaming","description":"Stream a voice preview that was created via the /v1/text-to-voice/design endpoint.","parameters":[{"name":"generated_voice_id","in":"path","description":"The generated_voice_id to stream.","required":true,"schema":{"description":"The generated_voice_id to stream.","type":"string","embed":true,"examples":["37HceQefKmEi3bGovXjL"],"title":"Generated Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":["text_to_voice","preview"],"x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/user":{"get":{"operationId":"get_user_info","summary":"Get user","description":"Gets information about the user","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":"user","x-fern-sdk-method-name":"get"}},"/v1/user/subscription":{"get":{"operationId":"get_user_subscription_info","summary":"Get user subscription","description":"Gets extended information about the users subscription","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtendedSubscriptionResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["user","subscription"],"x-fern-sdk-method-name":"get"}},"/v1/voices/settings/default":{"get":{"operationId":"get_voice_settings_default","summary":"Get default voice settings","description":"Gets the default settings for voices. \"similarity_boost\" corresponds to\"Clarity + Similarity Enhancement\" in the web app and \"stability\" corresponds to \"Stability\" slider in the web app.","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSettingsResponseModel"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":["voices","settings"],"x-fern-sdk-method-name":"get_default"}},"/v1/voices/{voice_id}/settings":{"get":{"operationId":"get_voice_settings","summary":"Get voice settings","description":"Returns the settings for a specific voice. \"similarity_boost\" corresponds to\"Clarity + Similarity Enhancement\" in the web app and \"stability\" corresponds to \"Stability\" slider in the web app.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":["voices","settings"],"x-fern-sdk-method-name":"get"}},"/v1/voices/{voice_id}/settings/edit":{"post":{"operationId":"edit_voice_settings","summary":"Edit voice settings","description":"Edit your settings for a specific voice. \"similarity_boost\" corresponds to \"Clarity + Similarity Enhancement\" in the web app and \"stability\" corresponds to \"Stability\" slider in the web app.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"The settings for a specific voice.","$ref":"#/components/schemas/VoiceSettingsResponseModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditVoiceSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":["voices","settings"],"x-fern-sdk-method-name":"update"}},"/v1/voices":{"get":{"operationId":"get_voices","summary":"List voices","description":"Returns a list of all available voices for a user. Stops working once the user's workspace exceeds 500 voices.","parameters":[{"name":"show_legacy","in":"query","description":"If set to true, legacy premade voices will be included in responses from /v1/voices","required":false,"schema":{"description":"If set to true, legacy premade voices will be included in responses from /v1/voices","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Show Legacy"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVoicesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"get_all","deprecated":true}},"/v1/voices/{voice_id}":{"get":{"operationId":"get_voice_by_id","summary":"Get voice","description":"Returns metadata about a specific voice.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"with_settings","in":"query","description":"This parameter is now deprecated. It is ignored and will be removed in a future version.","required":false,"schema":{"description":"This parameter is now deprecated. It is ignored and will be removed in a future version.","type":"boolean","default":true,"deprecated":true,"title":"With Settings"},"deprecated":true},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_voice","summary":"Delete voice","description":"Deletes a voice by its ID.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"delete"}},"/v1/voices/{voice_id}/edit":{"post":{"operationId":"edit_voice","summary":"Edit voice","description":"Edit a voice created by you.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Edit_voice_v1_voices__voice_id__edit_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"update"}},"/v2/voices":{"get":{"operationId":"get_user_voices_v2","summary":"List voices","description":"Gets a list of all available voices for a user with search, filtering and pagination.","parameters":[{"name":"next_page_token","in":"query","description":"The next page token to use for pagination. Returned from the previous request. Use this in combination with the has_more flag for reliable pagination.","required":false,"schema":{"description":"The next page token to use for pagination. Returned from the previous request. Use this in combination with the has_more flag for reliable pagination.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["0"],"title":"Next Page Token"}},{"name":"page_size","in":"query","description":"How many voices to return at maximum. Can not exceed 100, defaults to 10. Page 0 may include more voices due to default voices being included.","required":false,"schema":{"description":"How many voices to return at maximum. Can not exceed 100, defaults to 10. Page 0 may include more voices due to default voices being included.","type":"integer","default":10,"title":"Page Size"}},{"name":"search","in":"query","description":"Search term to filter voices by. Searches in name, description, labels, category.","required":false,"schema":{"description":"Search term to filter voices by. Searches in name, description, labels, category.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort","in":"query","description":"Which field to sort by, one of 'created_at_unix' or 'name'. 'created_at_unix' may not be available for older voices.","required":false,"schema":{"description":"Which field to sort by, one of 'created_at_unix' or 'name'. 'created_at_unix' may not be available for older voices.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["created_at_unix"],"title":"Sort"}},{"name":"sort_direction","in":"query","description":"Which direction to sort the voices in. 'asc' or 'desc'.","required":false,"schema":{"description":"Which direction to sort the voices in. 'asc' or 'desc'.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["desc"],"title":"Sort Direction"}},{"name":"voice_type","in":"query","description":"Type of the voice to filter by. One of 'personal', 'community', 'default', 'workspace', 'non-default', 'non-community', 'saved'. 'non-default' is equal to all but 'default'. 'non-community' is equal to 'personal' and 'workspace' combined (excludes library copies). 'saved' is equal to non-default, but includes default voices if they have been added to a collection.","required":false,"schema":{"description":"Type of the voice to filter by. One of 'personal', 'community', 'default', 'workspace', 'non-default', 'non-community', 'saved'. 'non-default' is equal to all but 'default'. 'non-community' is equal to 'personal' and 'workspace' combined (excludes library copies). 'saved' is equal to non-default, but includes default voices if they have been added to a collection.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Type"}},{"name":"category","in":"query","description":"Category of the voice to filter by. One of 'premade', 'cloned', 'generated', 'professional'","required":false,"schema":{"description":"Category of the voice to filter by. One of 'premade', 'cloned', 'generated', 'professional'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"fine_tuning_state","in":"query","description":"State of the voice's fine tuning to filter by. Applicable only to professional voices clones. One of 'draft', 'not_verified', 'not_started', 'queued', 'fine_tuning', 'fine_tuned', 'failed', 'delayed'","required":false,"schema":{"description":"State of the voice's fine tuning to filter by. Applicable only to professional voices clones. One of 'draft', 'not_verified', 'not_started', 'queued', 'fine_tuning', 'fine_tuned', 'failed', 'delayed'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Fine Tuning State"}},{"name":"collection_id","in":"query","description":"Collection ID to filter voices by.","required":false,"schema":{"description":"Collection ID to filter voices by.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Id"}},{"name":"include_total_count","in":"query","description":"Whether to include the total count of voices found in the response. NOTE: The total_count value is a live snapshot and may change between requests as users create, modify, or delete voices. For pagination, rely on the has_more flag instead. Only enable this when you actually need the total count (e.g., for display purposes), as it incurs a performance cost.","required":false,"schema":{"description":"Whether to include the total count of voices found in the response. NOTE: The total_count value is a live snapshot and may change between requests as users create, modify, or delete voices. For pagination, rely on the has_more flag instead. Only enable this when you actually need the total count (e.g., for display purposes), as it incurs a performance cost.","type":"boolean","default":true,"examples":[true],"title":"Include Total Count"}},{"name":"voice_ids","in":"query","description":"Voice IDs to lookup by. Maximum 100 voice IDs.","required":false,"schema":{"description":"Voice IDs to lookup by. Maximum 100 voice IDs.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Voice Ids"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVoicesV2ResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"search"}},"/v1/voices/add":{"post":{"operationId":"add_voice","summary":"Create voice clone","description":"Create a voice clone and add it to your Voices","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_voice_v1_voices_add_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceIVCResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":["voices","ivc"],"x-fern-sdk-method-name":"create"}},"/v1/voices/add/{public_user_id}/{voice_id}":{"post":{"operationId":"add_sharing_voice","summary":"Add shared voice","description":"Add a shared voice to your collection of Voices","parameters":[{"name":"public_user_id","in":"path","description":"Public user ID used to publicly identify ElevenLabs users.","required":true,"schema":{"description":"Public user ID used to publicly identify ElevenLabs users.","type":"string","examples":["63e06b7e7cafdc46be4d2e0b3f045940231ae058d508589653d74d1265a574ca"],"title":"Public User Id"}},{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_shared_voice_v1_voices_add__public_user_id___voice_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"share"}},"/v1/studio/podcasts":{"post":{"operationId":"create_podcast","summary":"Create Podcast","description":"Create and auto-convert a podcast project. Currently, the LLM cost is covered by us but you will still be charged for the audio generation. In the future, you will be charged for both the LLM and audio generation costs.","parameters":[{"name":"safety-identifier","in":"header","description":"Used for moderation. Your workspace must be allowlisted to use this feature.","required":false,"schema":{"description":"Used for moderation. Your workspace must be allowlisted to use this feature.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Safety-Identifier"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_podcast_v1_studio_podcasts_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":"studio","x-fern-sdk-method-name":"create_podcast"}},"/v1/music/video-to-music":{"post":{"operationId":"video_to_music","summary":"Video To Music","description":"Generate background music from one or more video files. Videos are combined in order. Optional description and style tags influence the generated music.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Video_to_Music_v1_music_video_to_music_post"}}}},"responses":{"200":{"description":"Generated audio file matching the video. Content-Type and file extension depend on the output_format parameter (default mp3).","content":{"audio/*":{"schema":{"type":"string","format":"binary"}}}},"403":{"description":"Subscription required."},"422":{"description":"Validation error (e.g. invalid or missing videos)."}},"tags":["video-to-music"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"video_to_music"}},"/v1/studio/projects/{project_id}/pronunciation-dictionaries":{"post":{"operationId":"update_pronunciation_dictionaries","summary":"Create Pronunciation Dictionaries","description":"Create a set of pronunciation dictionaries acting on a project. This will automatically mark text within this project as requiring reconverting where the new dictionary would apply or the old one no longer does.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_Pronunciation_Dictionaries_v1_studio_projects__project_id__pronunciation_dictionaries_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePronunciationDictionaryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","pronunciation_dictionaries"],"x-fern-sdk-method-name":"create"}},"/v1/studio/projects":{"get":{"operationId":"get_projects","summary":"List Studio Projects","description":"Returns a list of your Studio projects with metadata.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProjectsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"add_project","summary":"Create Studio Project","description":"Creates a new Studio project, it can be either initialized as blank, from a document or from a URL.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_Studio_project_v1_studio_projects_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"create"}},"/v1/studio/projects/{project_id}":{"post":{"operationId":"edit_project","summary":"Update Studio Project","description":"Updates the specified Studio project by setting the values of the parameters passed.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_Studio_project_v1_studio_projects__project_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"update"},"get":{"operationId":"get_project_by_id","summary":"Get Studio Project","description":"Returns information about a specific Studio project. This endpoint returns more detailed information about a project than `GET /v1/studio`.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"share_id","in":"query","description":"The share ID of the project","required":false,"schema":{"description":"The share ID of the project","anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectExtendedResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_project","summary":"Delete Studio Project","description":"Deletes a Studio project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"delete"}},"/v1/studio/projects/{project_id}/content":{"post":{"operationId":"edit_project_content","summary":"Update Studio Project Content","description":"Updates Studio project content.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Update_Studio_project_content_v1_studio_projects__project_id__content_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","content"],"x-fern-sdk-method-name":"update"}},"/v1/studio/projects/{project_id}/convert":{"post":{"operationId":"convert_project_endpoint","summary":"Convert Studio Project","description":"Starts conversion of a Studio project and all of its chapters.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"convert"}},"/v1/studio/projects/{project_id}/snapshots":{"get":{"operationId":"get_project_snapshots","summary":"List Studio Project Snapshots","description":"Retrieves a list of snapshots for a Studio project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSnapshotsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"list"}},"/v1/studio/projects/{project_id}/snapshots/{project_snapshot_id}":{"get":{"operationId":"get_project_snapshot_endpoint","summary":"Get Project Snapshot","description":"Returns the project snapshot.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"project_snapshot_id","in":"path","description":"The ID of the Studio project snapshot.","required":true,"schema":{"description":"The ID of the Studio project snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSnapshotExtendedResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"get"}},"/v1/studio/projects/{project_id}/snapshots/{project_snapshot_id}/stream":{"post":{"operationId":"stream_project_snapshot_audio_endpoint","summary":"Stream Studio Project Audio","description":"Stream the audio from a Studio project snapshot.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"project_snapshot_id","in":"path","description":"The ID of the Studio project snapshot.","required":true,"schema":{"description":"The ID of the Studio project snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_Studio_project_audio_v1_studio_projects__project_id__snapshots__project_snapshot_id__stream_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/studio/projects/{project_id}/snapshots/{project_snapshot_id}/archive":{"post":{"operationId":"stream_project_snapshot_archive_endpoint","summary":"Stream Archive With Studio Project Audio","description":"Returns a compressed archive of the Studio project's audio.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"project_snapshot_id","in":"path","description":"The ID of the Studio project snapshot.","required":true,"schema":{"description":"The ID of the Studio project snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Streaming archive data","content":{"application/x-zip":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"stream_archive"}},"/v1/studio/projects/{project_id}/chapters":{"get":{"operationId":"get_chapters","summary":"List Chapters","description":"Returns a list of a Studio project's chapters.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetChaptersResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"add_chapter","summary":"Create Chapter","description":"Creates a new chapter either as blank or from a URL.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_chapter_v1_studio_projects__project_id__chapters_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"create"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}":{"get":{"operationId":"get_chapter_by_id_endpoint","summary":"Get Chapter","description":"Returns information about a specific chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterWithContentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"get"},"post":{"operationId":"edit_chapter","summary":"Update Chapter","description":"Updates a chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_chapter_v1_studio_projects__project_id__chapters__chapter_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_chapter_endpoint","summary":"Delete Chapter","description":"Deletes a chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"delete"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/convert":{"post":{"operationId":"convert_chapter_endpoint","summary":"Convert Chapter","description":"Starts conversion of a specific chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"convert"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots":{"get":{"operationId":"get_chapter_snapshots","summary":"List Chapter Snapshots","description":"Gets information about all the snapshots of a chapter. Each snapshot can be downloaded as audio. Whenever a chapter is converted a snapshot will automatically be created.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterSnapshotsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters","snapshots"],"x-fern-sdk-method-name":"list"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots/{chapter_snapshot_id}":{"get":{"operationId":"get_chapter_snapshot_endpoint","summary":"Get Chapter Snapshot","description":"Returns the chapter snapshot.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"chapter_snapshot_id","in":"path","description":"The ID of the chapter snapshot.","required":true,"schema":{"description":"The ID of the chapter snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterSnapshotExtendedResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters","snapshots"],"x-fern-sdk-method-name":"get"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots/{chapter_snapshot_id}/stream":{"post":{"operationId":"stream_chapter_snapshot_audio","summary":"Stream Chapter Audio","description":"Stream the audio from a chapter snapshot. Use `GET /v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots` to return the snapshots of a chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"chapter_snapshot_id","in":"path","description":"The ID of the chapter snapshot to be used. You can use the [List project chapter snapshots](/docs/api-reference/studio/get-snapshots) endpoint to list all the available snapshots.","required":true,"schema":{"description":"The ID of the chapter snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_chapter_audio_v1_studio_projects__project_id__chapters__chapter_id__snapshots__chapter_snapshot_id__stream_post"}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters","snapshots"],"x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/studio/projects/{project_id}/muted-tracks":{"get":{"operationId":"get_project_muted_tracks_endpoint","summary":"Get Project Muted Tracks","description":"Returns a list of chapter IDs that have muted tracks in a project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectMutedTracksResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"get_muted_tracks"}},"/v1/dubbing/project":{"post":{"operationId":"dubbing_project_create","summary":"Create Dubbing Project","description":"Create a dubbing project from an uploaded file or a source URL.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_Dubbing_Project_v1_dubbing_project_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"request":{"source_url":"https://example.com/promo.mp4","source_language":"en","reference":"Q3 marketing video"},"response":{"body":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","status":"queued","reference":"Q3 marketing video","source_language":"en","model_id":"dubbing_v2","language_ids":[],"revision":0,"created_at":"2026-07-03T10:15:30Z","updated_at":"2026-07-03T10:15:30Z"}}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"dubbing_project_list","summary":"List Dubbing Projects","description":"List the workspace's dubbing projects (cursor-paginated).","parameters":[{"name":"cursor","in":"query","description":"Pagination cursor from a previous response's next_cursor.","required":false,"schema":{"description":"Pagination cursor from a previous response's next_cursor.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"Number of projects per page (max 100).","required":false,"schema":{"description":"Number of projects per page (max 100).","type":"integer","default":20,"title":"Page Size"}},{"name":"status","in":"query","description":"Filter to projects in this status (preparing, ready, failed).","required":false,"schema":{"description":"Filter to projects in this status (preparing, ready, failed).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"sort_direction","in":"query","description":"Sort by creation time (default 'DESCENDING').","required":false,"schema":{"description":"Sort by creation time (default 'DESCENDING').","type":"string","default":"DESCENDING","enum":["ASCENDING","DESCENDING"],"title":"Sort Direction"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingProjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"query-parameters":{"page_size":20},"response":{"body":{"projects":[{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","status":"ready","reference":"Q3 marketing video","source_language":"en","model_id":"dubbing_v2","media":{"filename":"promo.mp4","duration_s":42.5,"has_video":true,"mime_type":"video/mp4"},"language_ids":["lang_1001kwkyxp0je6ktn4knsfrasx5s"],"revision":3,"created_at":"2026-07-03T10:15:30Z","updated_at":"2026-07-03T10:17:12Z"}]}}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"list"}},"/v1/dubbing/project/{project_id}":{"get":{"operationId":"dubbing_project_get","summary":"Get Dubbing Project","description":"Full project detail, including its language target ids.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project to fetch.","required":true,"schema":{"description":"Identifier of the dubbing project to fetch.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"response":{"body":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","status":"ready","reference":"Q3 marketing video","source_language":"en","model_id":"dubbing_v2","media":{"filename":"promo.mp4","duration_s":42.5,"has_video":true,"mime_type":"video/mp4"},"language_ids":["lang_1001kwkyxp0je6ktn4knsfrasx5s"],"revision":3,"created_at":"2026-07-03T10:15:30Z","updated_at":"2026-07-03T10:17:12Z"}}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"dubbing_project_delete","summary":"Delete Dubbing Project","description":"Delete a project and its language targets.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project to delete.","required":true,"schema":{"description":"Identifier of the dubbing project to delete.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"delete"}},"/v1/dubbing/project/{project_id}/language":{"post":{"operationId":"dubbing_language_create","summary":"Create Dubbing Language Target","description":"Queue a language target for a project (starts once the project is ready).","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_Dubbing_Language_Target_v1_dubbing_project__project_id__language_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"request":{"target_language":"es","model_id":"dubbing_v2"},"response":{"body":{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"queued","model_id":"dubbing_v2","revision":0,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:16:00Z"}}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"dubbing_language_list","summary":"List Dubbing Language Targets","description":"List a project's language targets (cursor-paginated).","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"cursor","in":"query","description":"Pagination cursor from a previous response's next_cursor.","required":false,"schema":{"description":"Pagination cursor from a previous response's next_cursor.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"Number of language targets per page (max 100).","required":false,"schema":{"description":"Number of language targets per page (max 100).","type":"integer","default":20,"title":"Page Size"}},{"name":"status","in":"query","description":"Filter to targets in this status (queued, processing, completed, stale, failed).","required":false,"schema":{"description":"Filter to targets in this status (queued, processing, completed, stale, failed).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"query-parameters":{"page_size":20},"response":{"body":{"languages":[{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"completed","model_id":"dubbing_v2","outputs":{"lossless_audio":"https://storage.googleapis.com/eleven-dubbing/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/lang_1001kwkyxp0je6ktn4knsfrasx5s/output.wav?X-Goog-Signature=..."},"revision":3,"output_revision":3,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:20:45Z"}]}}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"list"}},"/v1/dubbing/project/{project_id}/language/{language_id}":{"get":{"operationId":"dubbing_language_get","summary":"Get Dubbing Language Target","description":"Full language-target detail.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target to fetch.","required":true,"schema":{"description":"Identifier of the language target to fetch.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"},"response":{"body":{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"completed","model_id":"dubbing_v2","outputs":{"lossless_audio":"https://storage.googleapis.com/eleven-dubbing/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/lang_1001kwkyxp0je6ktn4knsfrasx5s/output.wav?X-Goog-Signature=..."},"revision":3,"output_revision":3,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:20:45Z"}}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"dubbing_language_delete","summary":"Delete Dubbing Language Target","description":"Delete a language target.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target to delete.","required":true,"schema":{"description":"Identifier of the language target to delete.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"delete"}},"/v1/dubbing/project/{project_id}/transcript":{"get":{"operationId":"dubbing_transcript_get","summary":"Get Dubbing Transcript","description":"The project's source transcript, as editable segments.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSourceTranscriptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"response":{"body":{"language":"en","segments":[{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","text":"Welcome to our product demo.","speaker_id":"default_speaker","start_s":0,"end_s":2.5}],"revision":3}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/project/{project_id}/transcript/segment/{segment_id}":{"patch":{"operationId":"dubbing_transcript_segment_update","summary":"Update Dubbing Transcript Segment","description":"Edit a source segment's text, speaker, or timing.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"segment_id","in":"path","description":"Identifier of the segment to edit.","required":true,"schema":{"description":"Identifier of the segment to edit.","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSegmentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSourceSegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","segment_id":"0199a3f0-1c2d-7abc-8def-0123456789ab"},"request":{"text":"Welcome to our latest product demo."},"response":{"body":{"segment":{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","text":"Welcome to our latest product demo.","speaker_id":"default_speaker","start_s":0,"end_s":2.5},"revision":4}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"update_segment"},"delete":{"operationId":"dubbing_transcript_segment_delete","summary":"Delete Dubbing Transcript Segment","description":"Remove a source segment from the transcript.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"segment_id","in":"path","description":"Identifier of the segment to remove.","required":true,"schema":{"description":"Identifier of the segment to remove.","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTranscriptRevisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","segment_id":"0199a3f0-1c2d-7abc-8def-0123456789ab"},"response":{"body":{"revision":6}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"delete_segment"}},"/v1/dubbing/project/{project_id}/transcript/segment":{"post":{"operationId":"dubbing_transcript_segment_add","summary":"Add Dubbing Transcript Segment","description":"Add a new source segment to the transcript.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSegmentCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSourceSegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"request":{"text":"Thanks for watching.","speaker_id":"default_speaker","start_s":42,"end_s":44},"response":{"body":{"segment":{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","text":"Thanks for watching.","speaker_id":"default_speaker","start_s":42,"end_s":44},"revision":5}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"create_segment"}},"/v1/dubbing/project/{project_id}/language/{language_id}/transcript":{"get":{"operationId":"dubbing_target_transcript_get","summary":"Get Dubbing Target Transcript","description":"A language target's transcript: source segments with their translations.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target.","required":true,"schema":{"description":"Identifier of the language target.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTargetTranscriptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"},"response":{"body":{"source_language":"en","target_language":"es","segments":[{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","speaker_id":"default_speaker","start_s":0,"end_s":2.5,"source_text":"Welcome to our product demo.","translation":"Bienvenido a la demostración de nuestro producto."}],"revision":3}}}],"x-fern-sdk-group-name":["dubbing","project","language","transcript"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/project/{project_id}/language/{language_id}/transcript/segment/{segment_id}":{"patch":{"operationId":"dubbing_target_transcript_segment_update","summary":"Update Dubbing Target Transcript Segment","description":"Edit a segment's translation for a language target.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target.","required":true,"schema":{"description":"Identifier of the language target.","type":"string","title":"Language Id"}},{"name":"segment_id","in":"path","description":"Identifier of the segment to edit.","required":true,"schema":{"description":"Identifier of the segment to edit.","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTargetSegmentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTargetSegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","segment_id":"0199a3f0-1c2d-7abc-8def-0123456789ab"},"request":{"translation":"Bienvenido a nuestra última demostración de producto."},"response":{"body":{"segment":{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","speaker_id":"default_speaker","start_s":0,"end_s":2.5,"source_text":"Welcome to our product demo.","translation":"Bienvenido a nuestra última demostración de producto."},"revision":4}}}],"x-fern-sdk-group-name":["dubbing","project","language","transcript"],"x-fern-sdk-method-name":"update_segment"}},"/v1/dubbing/project/{project_id}/language/{language_id}/transcript/regenerate":{"post":{"operationId":"dubbing_target_transcript_regenerate","summary":"Regenerate Dubbing Target","description":"Re-dub a target from its edited transcript (charged like a generation).","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target.","required":true,"schema":{"description":"Identifier of the language target.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"},"response":{"body":{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"queued","model_id":"dubbing_v2","revision":4,"output_revision":3,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:25:10Z"}}}],"x-fern-sdk-group-name":["dubbing","project","language","transcript"],"x-fern-sdk-method-name":"regenerate"}},"/v1/dubbing/resource/{dubbing_id}":{"get":{"operationId":"get_dubbing_resource","summary":"Get dubbing resource","description":"Given a dubbing ID generated from the '/v1/dubbing' endpoint with studio enabled, returns the dubbing resource.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingResource"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/resource/{dubbing_id}/language":{"post":{"operationId":"add_language","summary":"Add language to dubbing resource","description":"Adds the given ElevenLab Turbo V2/V2.5 language code to the resource. Does not automatically generate transcripts/translations/audio.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_a_language_to_the_resource_v1_dubbing_resource__dubbing_id__language_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageAddedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","language"],"x-fern-sdk-method-name":"add"}},"/v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}/segment":{"post":{"operationId":"create_clip","summary":"Add speaker segment to dubbing resource","description":"Creates a new segment in dubbing resource with a start and end time for the speaker in every available language. Does not automatically generate transcripts/translations/audio.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"speaker_id","in":"path","description":"ID of the speaker.","required":true,"schema":{"description":"ID of the speaker.","type":"string","title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"The text, and start and end times of a segment.","$ref":"#/components/schemas/SegmentCreatePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker","segment"],"x-fern-sdk-method-name":"create"}},"/v1/dubbing/resource/{dubbing_id}/segment/{segment_id}/{language}":{"patch":{"operationId":"update_segment_language","summary":"Modify a segment","description":"Modifies a single segment with new text and/or start/end times. Will update the values for only a specific language of a segment. Does not automatically regenerate the dub.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"segment_id","in":"path","description":"ID of the segment","required":true,"schema":{"description":"ID of the segment","type":"string","title":"Segment Id"}},{"name":"language","in":"path","description":"ID of the language.","required":true,"schema":{"description":"ID of the language.","type":"string","title":"Language"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"The text, and start and end times of a segment.","$ref":"#/components/schemas/SegmentUpdatePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","segment"],"x-fern-sdk-method-name":"update"}},"/v1/dubbing/resource/{dubbing_id}/migrate-segments":{"post":{"operationId":"migrate_segments","summary":"Move Segments Between Speakers","description":"Change the attribution of one or more segments to a different speaker.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Move_segments_between_speakers_v1_dubbing_resource__dubbing_id__migrate_segments_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentMigrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"migrate_segments"}},"/v1/dubbing/resource/{dubbing_id}/segment/{segment_id}":{"delete":{"operationId":"delete_segment","summary":"Delete a segment","description":"Deletes a single segment from the dubbing.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"segment_id","in":"path","description":"ID of the segment","required":true,"schema":{"description":"ID of the segment","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","segment"],"x-fern-sdk-method-name":"delete"}},"/v1/dubbing/resource/{dubbing_id}/transcribe":{"post":{"operationId":"transcribe","summary":"Transcribe segments","description":"Regenerate the transcriptions for the specified segments. Does not automatically regenerate translations or dubs.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Transcribes_segments_v1_dubbing_resource__dubbing_id__transcribe_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentTranscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"transcribe"}},"/v1/dubbing/resource/{dubbing_id}/translate":{"post":{"operationId":"translate","summary":"Translate segments","description":"Regenerate the translations for either the entire resource or the specified segments/languages. Will automatically transcribe missing transcriptions. Will not automatically regenerate the dubs.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Translates_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__translate_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentTranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"translate"}},"/v1/dubbing/resource/{dubbing_id}/dub":{"post":{"operationId":"dub","summary":"Dub segments","description":"Regenerate the dubs for either the entire resource or the specified segments/languages. Will automatically transcribe and translate any missing transcriptions and translations.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Dubs_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__dub_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentDubResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"dub"}},"/v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}":{"patch":{"operationId":"update_speaker","summary":"Update Metadata For A Speaker","description":"Amend the metadata associated with a speaker, such as their voice. Both voice cloning and using voices from the ElevenLabs library are supported.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"speaker_id","in":"path","description":"ID of the speaker.","required":true,"schema":{"description":"ID of the speaker.","type":"string","title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_metadata_for_a_speaker_v1_dubbing_resource__dubbing_id__speaker__speaker_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerUpdatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker"],"x-fern-sdk-method-name":"update"}},"/v1/dubbing/resource/{dubbing_id}/speaker":{"post":{"operationId":"create_speaker","summary":"Create A New Speaker","description":"Creates a new speaker in a dubbing resource. The speaker is added to every available language and can optionally be associated with an ElevenLabs voice and voice settings.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_a_new_speaker_v1_dubbing_resource__dubbing_id__speaker_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker"],"x-fern-sdk-method-name":"create"}},"/v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}/similar-voices":{"get":{"operationId":"get_similar_voices_for_speaker","summary":"Search The Elevenlabs Library For Voices Similar To A Speaker.","description":"Fetch the top 10 similar voices to a speaker, including the voice IDs, names, descriptions, and, where possible, a sample audio recording.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"speaker_id","in":"path","description":"ID of the speaker.","required":true,"schema":{"description":"ID of the speaker.","type":"string","title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimilarVoicesForSpeakerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker"],"x-fern-sdk-method-name":"find_similar_voices"}},"/v1/dubbing/resource/{dubbing_id}/render/{language}":{"post":{"operationId":"render","summary":"Render Audio Or Video For The Given Language","description":"Regenerate the output media for a language using the latest Studio state. Please ensure all segments have been dubbed before rendering, otherwise they will be omitted. Renders are generated asynchronously, and to check the status of all renders please use the 'Get Dubbing Resource' endpoint.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language","in":"path","description":"The target language code to render, eg. 'es'. To render the source track use 'original'.","required":true,"schema":{"description":"The target language code to render, eg. 'es'. To render the source track use 'original'.","type":"string","title":"Language"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Render_audio_or_video_for_the_given_language_v1_dubbing_resource__dubbing_id__render__language__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingRenderResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"render"}},"/v1/dubbing":{"get":{"operationId":"list_dubs","summary":"List Dubs","description":"List the dubs you have access to.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many dubs to return at maximum. Can not exceed 200, defaults to 100.","required":false,"schema":{"description":"How many dubs to return at maximum. Can not exceed 200, defaults to 100.","type":"integer","default":100,"maximum":200,"minimum":1,"title":"Page Size"}},{"name":"dubbing_status","in":"query","description":"What state the dub is currently in.","required":false,"schema":{"description":"What state the dub is currently in.","type":"string","embed":true,"enum":["dubbing","dubbed","failed"],"title":"Dubbing Status"}},{"name":"dubbing_statuses","in":"query","description":"Filter by dubbing status.","required":false,"schema":{"description":"Filter by dubbing status.","anyOf":[{"type":"array","items":{"enum":["queued","preparing","dubbing","dubbed","failed"],"type":"string"}},{"type":"null"}],"title":"Dubbing Statuses"}},{"name":"dubbing_models","in":"query","description":"Filter by dubbing model generation.","required":false,"schema":{"description":"Filter by dubbing model generation.","anyOf":[{"type":"array","items":{"enum":["dubbing_v1","dubbing_v2"],"type":"string"}},{"type":"null"}],"title":"Dubbing Models"}},{"name":"target_language_codes","in":"query","description":"Filter by target language code.","required":false,"schema":{"description":"Filter by target language code.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Target Language Codes"}},{"name":"creation_sources","in":"query","description":"Filter by dubbing creation source.","required":false,"schema":{"description":"Filter by dubbing creation source.","anyOf":[{"type":"array","items":{"enum":["flow_node","dubbing_ui","dubbing_api"],"type":"string"}},{"type":"null"}],"title":"Creation Sources"}},{"name":"filter_by_creator","in":"query","description":"Filters who created the resources being listed, whether it was the user running the request or someone else that shared the resource with them.","required":false,"schema":{"description":"Filters who created the resources being listed, whether it was the user running the request or someone else that shared the resource with them.","type":"string","default":"all","enum":["personal","others","all"],"examples":["all"],"title":"Filter By Creator"}},{"name":"order_by","in":"query","description":"The field to use for ordering results from this query.","required":false,"schema":{"description":"The field to use for ordering results from this query.","type":"string","default":"created_at","enum":["created_at","name"],"title":"Order By"}},{"name":"order_direction","in":"query","description":"The order direction to use for results from this query.","required":false,"schema":{"description":"The order direction to use for results from this query.","type":"string","default":"DESCENDING","enum":["DESCENDING","ASCENDING"],"title":"Order Direction"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingMetadataPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"list"},"post":{"operationId":"create_dubbing","summary":"Dub a video or audio file","description":"Dubs a provided audio or video file into given language.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Dub_a_video_or_an_audio_file_v1_dubbing_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoDubbingResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"create"}},"/v1/dubbing/{dubbing_id}":{"get":{"operationId":"get_dubbed_metadata","summary":"Get dubbing","description":"Returns metadata about a dubbing project, including whether it's still in progress or not","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingMetadataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_dubbing","summary":"Delete dubbing","description":"Deletes a dubbing project.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDubbingResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"delete"}},"/v1/dubbing/{dubbing_id}/audio/{language_code}":{"get":{"operationId":"get_dubbed_file","summary":"Get dubbed audio","description":"Returns dub as a streamed MP3 or MP4 file. If this dub has been edited using Dubbing Studio you need to use the resource render endpoint as this endpoint only returns the original automatic dub result.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language_code","in":"path","description":"ID of the language.","required":true,"schema":{"description":"ID of the language.","type":"string","title":"Language Code"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The dubbed audio or video file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}},"video/mp4":{"schema":{"type":"string","format":"binary"}}}},"403":{"description":"Permission denied","content":{"application/json":{"example":{"error":"permission_denied","message":"User does not have required permissions"}}}},"404":{"description":"Dubbing not found","content":{"application/json":{"example":{"error":"dubbing_not_found","message":"There is no dubbing for language {language_code}."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"425":{"description":"Dubbing not ready","content":{"application/json":{"example":{"error":"dubbing_not_dubbed","message":"Dubbing has not finished yet."}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":["dubbing","audio"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/{dubbing_id}/transcript/{language_code}":{"get":{"operationId":"get_dubbed_transcript_file","summary":"Get dubbed transcript","description":"Returns transcript for the dub as an SRT or WEBVTT file.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language_code","in":"path","description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","required":true,"schema":{"description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","type":"string","examples":["source","en","fra"],"title":"Language Code"}},{"name":"format_type","in":"query","description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","required":false,"schema":{"description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","type":"string","default":"srt","embed":true,"enum":["srt","webvtt","json"],"title":"Format Type"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DubbingTranscriptResponseModel"},{"type":"string"}],"title":"Response Get Dubbed Transcript V1 Dubbing Dubbing Id Transcript Language Code Get"}},"text/plain":{"schema":{"type":"string"},"example":"1\n00:00:01,000 --> 00:00:04,000\nHello, this is the first subtitle line\n\n2\n00:00:05,000 --> 00:00:07,000\nAnd here's the second subtitle line"}}},"403":{"description":"Anonymous users cannot use this function","content":{"application/json":{"example":{"error":"anonymous_not_allowed","message":"Anonymous users cannot use this function"}}}},"404":{"description":"Dubbing or transcript not found","content":{"application/json":{"example":{"error":"transcript_not_found","message":"No transcript was found for the dub."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"425":{"description":"Dubbing not ready","content":{"application/json":{"example":{"error":"dubbing_not_dubbed","message":"Dubbing has not finished yet."}}}}},"deprecated":true,"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":["dubbing","transcript"],"x-fern-sdk-method-name":"get_transcript_for_dub"}},"/v1/dubbing/{dubbing_id}/transcripts/{language_code}/format/{format_type}":{"get":{"operationId":"get_dubbing_transcripts","summary":"Retrieve A Transcript","description":"Fetch the transcript for one of the languages in a dub.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language_code","in":"path","description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","required":true,"schema":{"description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","type":"string","examples":["source","en","fra"],"title":"Language Code"}},{"name":"format_type","in":"path","description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","required":true,"schema":{"description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","type":"string","enum":["srt","webvtt","json"],"examples":["srt","webvtt","json"],"title":"Format Type"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTranscriptsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":["dubbing","transcripts"],"x-fern-sdk-method-name":"get"}},"/v1/models":{"get":{"operationId":"get_models","summary":"List models","description":"Gets a list of available models.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ModelResponseModel"},"title":"Response Get Models V1 Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["models"],"x-fern-sdk-group-name":"models","x-fern-sdk-method-name":"list"}},"/v1/audio-native":{"post":{"operationId":"create_audio_native_project","summary":"Create audio native project","description":"Creates Audio Native enabled project, optionally starts conversion and returns project ID and embeddable HTML snippet.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Creates_Audio_Native_enabled_project__v1_audio_native_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioNativeCreateProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"create"}},"/v1/audio-native/{project_id}/settings":{"get":{"operationId":"get_audio_native_project_settings_endpoint","summary":"Get Audio Native Project Settings","description":"Get player settings for the specific project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAudioNativeProjectSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"get_settings"}},"/v1/audio-native/{project_id}/content":{"post":{"operationId":"audio_native_project_update_content_endpoint","summary":"Update audio native project","description":"Updates content for the specific AudioNative Project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Update_audio_native_Project_content_v1_audio_native__project_id__content_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioNativeEditContentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"update"}},"/v1/audio-native/content":{"post":{"operationId":"audio_native_update_content_from_url","summary":"Update Audio-Native Content From Url","description":"Finds an AudioNative project matching the provided URL, extracts content from the URL, updates the project content, and queues it for conversion and auto-publishing.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_audio_native_content_from_URL_v1_audio_native_content_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioNativeEditContentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"update_content_from_url"}},"/v1/shared-voices":{"get":{"operationId":"get_library_voices","summary":"Get shared voices","description":"Retrieves a list of shared voices.","parameters":[{"name":"page_size","in":"query","description":"How many shared voices to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many shared voices to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"title":"Page Size"}},{"name":"category","in":"query","description":"Voice category used for filtering","required":false,"schema":{"description":"Voice category used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"enum":["professional","famous","high_quality"],"examples":["professional"],"title":"Category"}},{"name":"gender","in":"query","description":"Gender used for filtering","required":false,"schema":{"description":"Gender used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["male"],"title":"Gender"}},{"name":"age","in":"query","description":"Age used for filtering","required":false,"schema":{"description":"Age used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["young"],"title":"Age"}},{"name":"accent","in":"query","description":"Accent used for filtering","required":false,"schema":{"description":"Accent used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["american"],"title":"Accent"}},{"name":"language","in":"query","description":"Language used for filtering","required":false,"schema":{"description":"Language used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["en"],"title":"Language"}},{"name":"locale","in":"query","description":"Locale used for filtering","required":false,"schema":{"description":"Locale used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["en-US"],"title":"Locale"}},{"name":"search","in":"query","description":"Search term used for filtering","required":false,"schema":{"description":"Search term used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["tiktok"],"title":"Search"}},{"name":"use_cases","in":"query","description":"Use-case used for filtering","required":false,"schema":{"description":"Use-case used for filtering","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"examples":["audiobook"],"title":"Use Cases"}},{"name":"descriptives","in":"query","description":"Search term used for filtering","required":false,"schema":{"description":"Search term used for filtering","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"examples":["tiktok"],"title":"Descriptives"}},{"name":"featured","in":"query","description":"Filter featured voices","required":false,"schema":{"description":"Filter featured voices","type":"boolean","default":false,"examples":[true],"title":"Featured"}},{"name":"min_notice_period_days","in":"query","description":"Filter voices with a minimum notice period of the given number of days.","required":false,"schema":{"description":"Filter voices with a minimum notice period of the given number of days.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[30],"title":"Min Notice Period Days"}},{"name":"include_custom_rates","in":"query","description":"Include/exclude voices with custom rates","required":false,"schema":{"description":"Include/exclude voices with custom rates","anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Include Custom Rates"}},{"name":"include_live_moderated","in":"query","description":"Include/exclude voices that are live moderated","required":false,"schema":{"description":"Include/exclude voices that are live moderated","anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Include Live Moderated"}},{"name":"reader_app_enabled","in":"query","description":"Filter voices that are enabled for the reader app","required":false,"schema":{"description":"Filter voices that are enabled for the reader app","type":"boolean","default":false,"examples":[true],"title":"Reader App Enabled"}},{"name":"owner_id","in":"query","description":"Filter voices by public owner ID","required":false,"schema":{"description":"Filter voices by public owner ID","anyOf":[{"type":"string"},{"type":"null"}],"examples":["7c9fab611d9a0e1fb2e7448a0c294a8804efc2bcc324b0a366a5d5232b7d1532"],"title":"Owner Id"}},{"name":"sort","in":"query","description":"Sort criteria. Must be one of: created_date, usage_character_count_1y, trending, cloned_by_count.","required":false,"schema":{"description":"Sort criteria. Must be one of: created_date, usage_character_count_1y, trending, cloned_by_count.","default":"created_date","anyOf":[{"type":"string"},{"type":"null"}],"enum":["created_date","usage_character_count_1y","trending","cloned_by_count"],"examples":["created_date"],"title":"Sort"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Page"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLibraryVoicesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"get_shared"}},"/v1/similar-voices":{"post":{"operationId":"get_similar_library_voices","summary":"List similar voices","description":"Returns a list of shared voices similar to the provided audio sample. If neither similarity_threshold nor top_k is provided, we will apply default values.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Get_similar_library_voices_v1_similar_voices_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLibraryVoicesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"find_similar_voices"}},"/v1/usage/character-stats":{"get":{"operationId":"usage_characters","summary":"Get character usage metrics","description":"(Deprecated) This endpoint is deprecated. Use /v1/workspace/analytics/query/usage-by-product-over-time instead, which exposes the bucket size as `interval_seconds` (an integer in seconds) rather than `aggregation_interval`. Returns the usage metrics for the current user or the entire workspace they are part of. The response provides a time axis based on the specified aggregation interval (default: day), with usage values for each interval along that axis. Usage is broken down by the selected breakdown type. For example, breakdown type \"voice\" will return the usage of each voice for each interval along the time axis.","parameters":[{"name":"start_unix","in":"query","description":"UTC Unix timestamp for the start of the usage window, in milliseconds. To include the first day of the window, the timestamp should be at 00:00:00 of that day.","required":true,"schema":{"description":"UTC Unix timestamp for the start of the usage window, in milliseconds. To include the first day of the window, the timestamp should be at 00:00:00 of that day.","type":"integer","examples":["1685574000"],"title":"Start Unix"}},{"name":"end_unix","in":"query","description":"UTC Unix timestamp for the end of the usage window, in milliseconds. To include the last day of the window, the timestamp should be at 23:59:59 of that day.","required":true,"schema":{"description":"UTC Unix timestamp for the end of the usage window, in milliseconds. To include the last day of the window, the timestamp should be at 23:59:59 of that day.","type":"integer","examples":["1688165999"],"title":"End Unix"}},{"name":"include_workspace_metrics","in":"query","description":"Whether or not to include the statistics of the entire workspace.","required":false,"schema":{"description":"Whether or not to include the statistics of the entire workspace.","type":"boolean","default":false,"title":"Include Workspace Metrics"}},{"name":"breakdown_type","in":"query","description":"How to break down the information. Cannot be \"user\" if include_workspace_metrics is False.","required":false,"schema":{"description":"How to break down the information. Cannot be \"user\" if include_workspace_metrics is False.","default":"none","$ref":"#/components/schemas/BreakdownTypes"}},{"name":"aggregation_interval","in":"query","description":"How to aggregate usage data over time. Can be \"hour\", \"day\", \"week\", \"month\", or \"cumulative\".","required":false,"schema":{"description":"How to aggregate usage data over time. Can be \"hour\", \"day\", \"week\", \"month\", or \"cumulative\".","default":"day","$ref":"#/components/schemas/UsageAggregationInterval"}},{"name":"aggregation_bucket_size","in":"query","description":"Aggregation bucket size in seconds. Overrides the aggregation interval.","required":false,"schema":{"description":"Aggregation bucket size in seconds. Overrides the aggregation interval.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aggregation Bucket Size"}},{"name":"metric","in":"query","description":"Which metric to aggregate.","required":false,"schema":{"description":"Which metric to aggregate.","default":"credits","$ref":"#/components/schemas/MetricType"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageCharactersResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"x-fern-sdk-group-name":"usage","x-fern-sdk-method-name":"get"}},"/v1/pronunciation-dictionaries/add-from-file":{"post":{"operationId":"add_from_file","summary":"Create a pronunciation dictionary from a file","description":"Creates a new pronunciation dictionary from a lexicon .PLS file","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_file_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPronunciationDictionaryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"create_from_file"}},"/v1/pronunciation-dictionaries/add-from-rules":{"post":{"operationId":"add_from_rules","summary":"Create a pronunciation dictionary from rules","description":"Creates a new pronunciation dictionary from provided rules.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_rules_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPronunciationDictionaryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"create_from_rules"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}":{"patch":{"operationId":"patch_pronunciation_dictionary","summary":"Update Pronunciation Dictionary","description":"Partially update the pronunciation dictionary without changing the version","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPronunciationDictionaryMetadataResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"update"},"get":{"operationId":"get_pronunciation_dictionary_metadata","summary":"Get pronunciation dictionary","description":"Get metadata for a pronunciation dictionary","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPronunciationDictionaryWithRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"get"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}/set-rules":{"post":{"operationId":"set_rules","summary":"Set pronunciation dictionary rules","description":"Replaces all existing rules on the pronunciation dictionary with the provided ones.","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Set_rules_on_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__set_rules_post"}}}},"responses":{"200":{"description":"Successfully set rules on the pronunciation dictionary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PronunciationDictionaryRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":["pronunciation_dictionaries","rules"],"x-fern-sdk-method-name":"set"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}/add-rules":{"post":{"operationId":"add_rules","summary":"Add pronunciation dictionary rules","description":"Add rules to the pronunciation dictionary. If a rule with the same string_to_replace already exists, it will be replaced.","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_rules_to_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__add_rules_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PronunciationDictionaryRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":["pronunciation_dictionaries","rules"],"x-fern-sdk-method-name":"add"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}/remove-rules":{"post":{"operationId":"remove_rules","summary":"Remove pronunciation dictionary rules","description":"Remove rules from the pronunciation dictionary","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Remove_rules_from_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__remove_rules_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PronunciationDictionaryRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":["pronunciation_dictionaries","rules"],"x-fern-sdk-method-name":"remove"}},"/v1/pronunciation-dictionaries/{dictionary_id}/{version_id}/download":{"get":{"operationId":"get_pronunciation_dictionary_version_pls","summary":"Get pronunciation dictionary by version","description":"Get a PLS file with a pronunciation dictionary version rules","parameters":[{"name":"dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Dictionary Id"}},{"name":"version_id","in":"path","description":"The id of the pronunciation dictionary version","required":true,"schema":{"description":"The id of the pronunciation dictionary version","type":"string","examples":["BdF0s0aZ3oFoKnDYdTox"],"title":"Version Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The PLS file containing pronunciation dictionary rules","headers":{"Content-Disposition":{"description":"Attachment filename","schema":{"type":"string"}}},"content":{"text/plain":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"download"}},"/v1/pronunciation-dictionaries":{"get":{"operationId":"get_pronunciation_dictionaries_metadata","summary":"List pronunciation dictionaries","description":"Get a list of the pronunciation dictionaries you have access to and their metadata","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many pronunciation dictionaries to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many pronunciation dictionaries to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"sort","in":"query","description":"Which field to sort by, one of 'created_at_unix' or 'name'.","required":false,"schema":{"description":"Which field to sort by, one of 'created_at_unix' or 'name'.","default":"creation_time_unix","anyOf":[{"enum":["creation_time_unix","name"],"type":"string"},{"type":"null"}],"examples":["creation_time_unix"],"title":"Sort"}},{"name":"sort_direction","in":"query","description":"Which direction to sort the voices in. 'ascending' or 'descending'.","required":false,"schema":{"description":"Which direction to sort the voices in. 'ascending' or 'descending'.","default":"DESCENDING","anyOf":[{"type":"string"},{"type":"null"}],"examples":["descending"],"title":"Sort Direction"}},{"name":"include_archived","in":"query","description":"Whether to include archived pronunciation dictionaries in the response.","required":false,"schema":{"description":"Whether to include archived pronunciation dictionaries in the response.","type":"boolean","default":true,"examples":[false],"title":"Include Archived"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPronunciationDictionariesMetadataResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"list"}},"/v1/workspaces/api-keys/disable":{"post":{"operationId":"disable","summary":"Disable API key","description":"Disable the API key used to authenticate this request. Requires the query parameter `api_key_name=self` as an explicit confirmation.","parameters":[{"name":"api_key_name","in":"query","description":"Must be set to `self` to disable the API key used to authenticate this request. Required as an explicit confirmation to avoid accidentally disabling the wrong key.","required":true,"schema":{"description":"Must be set to `self` to disable the API key used to authenticate this request. Required as an explicit confirmation to avoid accidentally disabling the wrong key.","type":"string","title":"Api Key Name","example":"self"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace","api-key"],"x-fern-sdk-group-name":["workspaces","api_keys"],"x-fern-sdk-method-name":"disable"}},"/v1/workspaces/api-keys/third-party-disabling":{"post":{"operationId":"set_third_party_disabling_policy","summary":"Set Workspace Third-Party Disabling Policy","description":"Set the workspace-wide Third-Party Disabling policy. When set, it forces, for every API key in the workspace, whether the holder of a key (potentially a third party who found it) may disable it via the self-disable endpoint or when it leaks publicly — overriding each key's own setting. Pass `true` to allow it for all keys, `false` to forbid it for all keys, or `null` to clear the override so per-key values and the plan default apply again. Workspace admins only.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Set_workspace_Third_Party_Disabling_policy_v1_workspaces_api_keys_third_party_disabling_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace","api-key"]}},"/v1/service-accounts/{service_account_user_id}/api-keys":{"get":{"operationId":"get_service_account_api_keys_route","summary":"Get API keys","description":"Get all API keys for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceApiKeyListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"create_service_account_api_key","summary":"Create API key","description":"Create a new API key for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateApiKeyResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"create"}},"/v1/service-accounts/{service_account_user_id}/api-keys/{api_key_id}":{"patch":{"operationId":"edit_service_account_api_key","summary":"Update API key","description":"Update an existing API key for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_edit_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys__api_key_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_service_account_api_key","summary":"Delete API key","description":"Delete an existing API key for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"delete"}},"/v1/workspace/audit-logs":{"get":{"operationId":"get_workspace_audit_logs","summary":"Get Workspace Audit Logs","description":"Returns the audit log for the workspace. Requires enterprise tier and the audit_log_read permission.","parameters":[{"name":"limit","in":"query","description":"Maximum number of entries per page","required":false,"schema":{"description":"Maximum number of entries per page","type":"integer","default":50,"maximum":100,"minimum":1,"title":"Limit"}},{"name":"cursor","in":"query","description":"Cursor for the next page (from previous response)","required":false,"schema":{"description":"Cursor for the next page (from previous response)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"time_from_unix_ms","in":"query","description":"Only include entries at or after this time (ms since epoch)","required":false,"schema":{"description":"Only include entries at or after this time (ms since epoch)","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time From Unix Ms"}},{"name":"time_to_unix_ms","in":"query","description":"Only include entries at or before this time (ms since epoch)","required":false,"schema":{"description":"Only include entries at or before this time (ms since epoch)","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time To Unix Ms"}},{"name":"actor_uid","in":"query","description":"Filter by actor user ID","required":false,"schema":{"description":"Filter by actor user ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Uid"}},{"name":"class_name","in":"query","description":"Filter by OCSF event class name (e.g. Account Change)","required":false,"schema":{"description":"Filter by OCSF event class name (e.g. Account Change)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"}},{"name":"activity_name","in":"query","description":"Filter by audit activity name (e.g. Subscription Creation)","required":false,"schema":{"description":"Filter by audit activity name (e.g. Subscription Creation)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceAuditLogsPageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","audit_logs"],"x-fern-sdk-method-name":"list"}},"/v1/workspace/auth-connections":{"post":{"operationId":"create_auth_connection","summary":"Create Workspace Auth Connection","description":"Create a new OAuth2 auth connection for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Auth connection to create","anyOf":[{"$ref":"#/components/schemas/CreateOAuth2ClientCredsRequest"},{"$ref":"#/components/schemas/CreateCustomHeaderAuthRequest"},{"$ref":"#/components/schemas/CreateBasicAuthRequest"},{"$ref":"#/components/schemas/CreateBearerAuthRequest"},{"$ref":"#/components/schemas/CreateOAuth2JWTRequest"},{"$ref":"#/components/schemas/CreatePrivateKeyJWTRequest"},{"$ref":"#/components/schemas/CreateMTLSAuthRequest"}],"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"The type of auth connection config","discriminator":{"propertyName":"auth_type","mapping":{"oauth2_client_credentials":"#/components/schemas/OAuth2ClientCredsResponse","refresh_token_auth":"#/components/schemas/RefreshTokenAuthResponse","basic_auth":"#/components/schemas/BasicAuthResponse","bearer_auth":"#/components/schemas/BearerAuthResponse","oauth2_jwt":"#/components/schemas/OAuth2JWTResponse","private_key_jwt":"#/components/schemas/PrivateKeyJWTResponse","mtls":"#/components/schemas/MTLSAuthResponse","custom_header_auth":"#/components/schemas/CustomHeaderAuthResponse","api_integration_oauth2_auth_code":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse","api_integration_oauth2_custom_app":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse","whatsapp_auth":"#/components/schemas/WhatsAppAuthResponse","slack_bot_auth":"#/components/schemas/SlackBotAuthResponse","url_secret":"#/components/schemas/UrlSecretAuthResponse"}},"oneOf":[{"$ref":"#/components/schemas/OAuth2ClientCredsResponse"},{"$ref":"#/components/schemas/RefreshTokenAuthResponse"},{"$ref":"#/components/schemas/BasicAuthResponse"},{"$ref":"#/components/schemas/BearerAuthResponse"},{"$ref":"#/components/schemas/OAuth2JWTResponse"},{"$ref":"#/components/schemas/PrivateKeyJWTResponse"},{"$ref":"#/components/schemas/MTLSAuthResponse"},{"$ref":"#/components/schemas/CustomHeaderAuthResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse"},{"$ref":"#/components/schemas/WhatsAppAuthResponse"},{"$ref":"#/components/schemas/SlackBotAuthResponse"},{"$ref":"#/components/schemas/UrlSecretAuthResponse"}],"title":"Response Create Workspace Auth Connection V1 Workspace Auth Connections Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"list_auth_connections","summary":"Get Workspace Auth Connections","description":"Get all auth connections for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAuthConnectionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"list"}},"/v1/workspace/auth-connections/{auth_connection_id}":{"patch":{"operationId":"update_auth_connection","summary":"Update Workspace Auth Connection","description":"Update an auth connection","parameters":[{"name":"auth_connection_id","in":"path","required":true,"schema":{"type":"string","title":"Auth Connection Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Updated auth connection fields","anyOf":[{"$ref":"#/components/schemas/UpdateOAuth2ClientCredsRequest"},{"$ref":"#/components/schemas/UpdateBasicAuthRequest"},{"$ref":"#/components/schemas/UpdateBearerAuthRequest"},{"$ref":"#/components/schemas/UpdateOAuth2JWTRequest"}],"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"The type of auth connection config","discriminator":{"propertyName":"auth_type","mapping":{"oauth2_client_credentials":"#/components/schemas/OAuth2ClientCredsResponse","refresh_token_auth":"#/components/schemas/RefreshTokenAuthResponse","basic_auth":"#/components/schemas/BasicAuthResponse","bearer_auth":"#/components/schemas/BearerAuthResponse","oauth2_jwt":"#/components/schemas/OAuth2JWTResponse","private_key_jwt":"#/components/schemas/PrivateKeyJWTResponse","mtls":"#/components/schemas/MTLSAuthResponse","custom_header_auth":"#/components/schemas/CustomHeaderAuthResponse","api_integration_oauth2_auth_code":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse","api_integration_oauth2_custom_app":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse","whatsapp_auth":"#/components/schemas/WhatsAppAuthResponse","slack_bot_auth":"#/components/schemas/SlackBotAuthResponse","url_secret":"#/components/schemas/UrlSecretAuthResponse"}},"oneOf":[{"$ref":"#/components/schemas/OAuth2ClientCredsResponse"},{"$ref":"#/components/schemas/RefreshTokenAuthResponse"},{"$ref":"#/components/schemas/BasicAuthResponse"},{"$ref":"#/components/schemas/BearerAuthResponse"},{"$ref":"#/components/schemas/OAuth2JWTResponse"},{"$ref":"#/components/schemas/PrivateKeyJWTResponse"},{"$ref":"#/components/schemas/MTLSAuthResponse"},{"$ref":"#/components/schemas/CustomHeaderAuthResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse"},{"$ref":"#/components/schemas/WhatsAppAuthResponse"},{"$ref":"#/components/schemas/SlackBotAuthResponse"},{"$ref":"#/components/schemas/UrlSecretAuthResponse"}],"title":"Response Update Workspace Auth Connection V1 Workspace Auth Connections Auth Connection Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_auth_connection","summary":"Delete Workspace Auth Connection","description":"Delete an auth connection","parameters":[{"name":"auth_connection_id","in":"path","required":true,"schema":{"type":"string","title":"Auth Connection Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"delete"}},"/v1/service-accounts":{"get":{"operationId":"get_workspace_service_accounts","summary":"Get service accounts","description":"List all service accounts in the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceServiceAccountListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"create_service_account","summary":"Create Service Account","description":"Create a new service account in the workspace. By default, a workspace can have up to 20 service accounts. Enterprise customers may request an increase to this limit, up to 100.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_service_account_v1_service_accounts_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateServiceAccountResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts"],"x-fern-sdk-method-name":"create"}},"/v1/workspace/groups":{"get":{"operationId":"get_groups_endpoint","summary":"List workspace groups","description":"Get all groups in the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkspaceGroupResponseModel"},"title":"Response Get All Groups V1 Workspace Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups"],"x-fern-sdk-method-name":"list"}},"/v1/workspace/groups/search":{"get":{"operationId":"search_groups","summary":"Search user group","description":"Searches for user groups in the workspace. Multiple or no groups may be returned.","parameters":[{"name":"name","in":"query","description":"Name of the target group.","required":true,"schema":{"description":"Name of the target group.","type":"string","title":"Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceGroupByNameResponseModel"},"title":"Response Search User Groups V1 Workspace Groups Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups"],"x-fern-sdk-method-name":"search"}},"/v1/workspace/groups/{group_id}/members/remove":{"post":{"operationId":"remove_member","summary":"Remove member from user group","description":"Removes a member from the specified group. Requires `group_members_manage` permission.","parameters":[{"name":"group_id","in":"path","description":"The ID of the target group.","required":true,"schema":{"description":"The ID of the target group.","type":"string","title":"Group Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Delete_member_from_user_group_v1_workspace_groups__group_id__members_remove_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkspaceGroupMemberResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups","members"],"x-fern-sdk-method-name":"remove"}},"/v1/workspace/groups/{group_id}/members":{"post":{"operationId":"add_member","summary":"Add member to user group","description":"Adds a member of your workspace to the specified group. Requires `group_members_manage` permission.","parameters":[{"name":"group_id","in":"path","description":"The ID of the target group.","required":true,"schema":{"description":"The ID of the target group.","type":"string","title":"Group Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_member_to_user_group_v1_workspace_groups__group_id__members_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceGroupMemberResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups","members"],"x-fern-sdk-method-name":"add"}},"/v1/workspace/invites/add":{"post":{"operationId":"invite_user","summary":"Invite user","description":"Sends an email invitation to join your workspace to the provided email. If the user doesn't have an account they will be prompted to create one. If the user accepts this invite they will be added as a user to your workspace and your subscription using one of your seats. This endpoint may only be called by workspace members with the WORKSPACE_MEMBERS_INVITE permission. If the user is already in the workspace a 400 error will be returned.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Invite_user_v1_workspace_invites_add_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceInviteResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","invites"],"x-fern-sdk-method-name":"create"}},"/v1/workspace/invites/add-bulk":{"post":{"operationId":"invite_users_bulk","summary":"Invite Multiple Users","description":"Sends email invitations to join your workspace to the provided emails. Requires all email addresses to be part of a verified domain. If the users don't have an account they will be prompted to create one. If the users accept these invites they will be added as users to your workspace and your subscription using one of your seats. This endpoint may only be called by workspace members with the WORKSPACE_MEMBERS_INVITE permission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Invite_multiple_users_v1_workspace_invites_add_bulk_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceInviteResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","invites"],"x-fern-sdk-method-name":"create_batch"}},"/v1/workspace/invites":{"delete":{"operationId":"delete_invite","summary":"Delete invite","description":"Invalidates an existing email invitation. The invitation will still show up in the inbox it has been delivered to, but activating it to join the workspace won't work. This endpoint may only be called by workspace members with the WORKSPACE_MEMBERS_INVITE permission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Delete_existing_invitation_v1_workspace_invites_delete"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkspaceInviteResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","invites"],"x-fern-sdk-method-name":"delete"}},"/v1/workspace/members":{"get":{"operationId":"get_workspace_members","summary":"Get Workspace Members","description":"Gets a list of all members of the workspace, including locked members. Service accounts are excluded. Requires the workspace_members_read permission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMemberResponseModel"},"title":"Response Get Workspace Members V1 Workspace Members Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","members"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"update_workspace_member","summary":"Update member","description":"Updates attributes of a workspace member. Apart from the email identifier, all parameters will remain unchanged unless specified. This endpoint may only be called by workspace administrators.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_member_v1_workspace_members_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceMemberResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","members"],"x-fern-sdk-method-name":"update"}},"/v1/workspace/resources/{resource_id}":{"get":{"operationId":"get_resource_metadata","summary":"Get Resource","description":"Gets the metadata of a resource by ID.","parameters":[{"name":"resource_id","in":"path","description":"The ID of the target resource.","required":true,"schema":{"description":"The ID of the target resource.","type":"string","title":"Resource Id"}},{"name":"resource_type","in":"query","description":"Resource type of the target resource.","required":true,"schema":{"description":"Resource type of the target resource.","$ref":"#/components/schemas/WorkspaceResourceType"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceMetadataResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","resources"],"x-fern-sdk-method-name":"get"}},"/v1/workspace/resources/{resource_id}/share":{"post":{"operationId":"share_resource_endpoint","summary":"Share Workspace Resource","description":"Grants a role (one of 'admin', 'editor', 'commenter', or 'viewer') on a workspace resource to a user, group, or workspace (service account) API key. This overrides any existing role the target has on the resource. To target a user or service account, pass only the user email; the user must be in your workspace. To target a group, pass only the group id. To target a workspace (service account) API key, pass the api key id; the resource will be shared with the service account associated with that key. You must have admin access to the resource to share it.","parameters":[{"name":"resource_id","in":"path","description":"The ID of the target resource.","required":true,"schema":{"description":"The ID of the target resource.","type":"string","title":"Resource Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Share_workspace_resource_v1_workspace_resources__resource_id__share_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","resources"],"x-fern-sdk-method-name":"share"}},"/v1/workspace/resources/{resource_id}/unshare":{"post":{"operationId":"unshare_resource_endpoint","summary":"Unshare Workspace Resource","description":"Removes any existing role on a workspace resource from a user, group, or workspace (service account) API key. To target a user or service account, pass only the user email; the user must be in your workspace. To target a group, pass only the group id. To target a workspace (service account) API key, pass the api key id; the resource will be unshared from the service account associated with that key. You must have admin access to the resource to unshare it. You cannot remove permissions from the user who created the resource.","parameters":[{"name":"resource_id","in":"path","description":"The ID of the target resource.","required":true,"schema":{"description":"The ID of the target resource.","type":"string","title":"Resource Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Unshare_workspace_resource_v1_workspace_resources__resource_id__unshare_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","resources"],"x-fern-sdk-method-name":"unshare"}},"/v1/workspace/webhooks":{"get":{"operationId":"get_workspace_webhooks_route","summary":"List Workspace Webhooks","description":"List all webhooks for a workspace","parameters":[{"name":"include_usages","in":"query","description":"Whether to include active usages of the webhook, only usable by admins","required":false,"schema":{"description":"Whether to include active usages of the webhook, only usable by admins","type":"boolean","default":false,"examples":[false],"title":"Include Usages"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceWebhookListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"list"},"post":{"operationId":"create_workspace_webhook_route","summary":"Create Workspace Webhook","description":"Create a new webhook for the workspace with the specified authentication type.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_workspace_webhook_v1_workspace_webhooks_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateWebhookResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"create"}},"/v1/workspace/webhooks/{webhook_id}":{"patch":{"operationId":"edit_workspace_webhook_route","summary":"Update Workspace Webhook","description":"Update the specified workspace webhook","parameters":[{"name":"webhook_id","in":"path","description":"The unique ID for the webhook","required":true,"schema":{"description":"The unique ID for the webhook","type":"string","examples":["G007vmtq9uWYl7SUW9zGS8GZZa1K"],"title":"Webhook Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_workspace_webhook_v1_workspace_webhooks__webhook_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchWorkspaceWebhookResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_workspace_webhook_route","summary":"Delete Workspace Webhook","description":"Delete the specified workspace webhook","parameters":[{"name":"webhook_id","in":"path","description":"The unique ID for the webhook","required":true,"schema":{"description":"The unique ID for the webhook","type":"string","examples":["G007vmtq9uWYl7SUW9zGS8GZZa1K"],"title":"Webhook Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkspaceWebhookResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"delete"}},"/v1/speech-to-text":{"post":{"operationId":"speech_to_text","summary":"Create transcript","description":"Transcribe an audio or video file. If webhook is set to true, the request will be processed asynchronously and results sent to configured webhooks. When use_multi_channel is true and the provided audio has multiple channels, a 'transcripts' object with separate transcripts for each channel is returned; set multichannel_output_style='combined' to instead receive a single transcript with all channels merged and sorted by time. Otherwise, returns a single transcript. The optional webhook_metadata parameter allows you to attach custom data that will be included in webhook responses for request correlation and tracking.","parameters":[{"name":"token","in":"query","description":"A single-use authentication token created via POST /v1/single-use-token/batch_scribe. This token can only be used once and expires after 15 minutes. Alternative to API key or bearer token authentication for frontend clients.","required":false,"schema":{"description":"A single-use authentication token created via POST /v1/single-use-token/batch_scribe. This token can only be used once and expires after 15 minutes. Alternative to API key or bearer token authentication for frontend clients.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean log and transcript storage features are unavailable for this request. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean log and transcript storage features are unavailable for this request. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Speech_to_Text_v1_speech_to_text_post"},"encoding":{"additional_formats":{"contentType":"application/json"}}}}},"responses":{"200":{"description":"Synchronous transcription result","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},{"$ref":"#/components/schemas/MultichannelSpeechToTextResponseModel"},{"$ref":"#/components/schemas/SpeechToTextWebhookResponseModel"}],"title":"Response Speech To Text V1 Speech To Text Post"},"examples":{"single_channel":{"summary":"Single channel response","value":{"language_code":"en","language_probability":0.98,"text":"Hello world!","words":[{"text":"Hello","start":0,"end":0.5,"type":"word","speaker_id":"speaker_1","logprob":-0.124}]}},"multichannel":{"summary":"Multichannel response","value":{"transcripts":[{"language_code":"en","language_probability":0.98,"text":"Hello from channel one.","words":[{"text":"Hello","start":0,"end":0.5,"type":"word","speaker_id":"speaker_0","channel_index":0,"logprob":-0.124}]},{"language_code":"en","language_probability":0.97,"text":"Greetings from channel two.","words":[{"text":"Greetings","start":0.1,"end":0.7,"type":"word","speaker_id":"speaker_1","channel_index":1,"logprob":-0.156}]}]}}}}}},"202":{"description":"Asynchronous request accepted","content":{"application/json":{"example":{"message":"Request accepted. Transcription result will be sent to the webhook.","request_id":"abc123"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-text"],"x-fern-sdk-group-name":"speech_to_text","x-fern-sdk-method-name":"convert"}},"/v1/speech-to-text/transcripts/{transcription_id}":{"get":{"operationId":"get_transcript_by_id","summary":"Get Transcript By Id","description":"Retrieve a previously generated transcript by its ID.","parameters":[{"name":"transcription_id","in":"path","description":"The unique ID of the transcript to retrieve","required":true,"schema":{"description":"The unique ID of the transcript to retrieve","type":"string","title":"Transcription Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The transcript data","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},{"$ref":"#/components/schemas/MultichannelSpeechToTextResponseModel"}],"oneOf":[{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},{"$ref":"#/components/schemas/MultichannelSpeechToTextResponseModel"}],"title":"Response Get Transcript By Id V1 Speech To Text Transcripts Transcription Id Get"}}}},"401":{"description":"Authentication required","content":{"application/json":{"example":{"detail":{"status":"unauthorized","message":"Authentication required."}}}}},"404":{"description":"Transcript not found","content":{"application/json":{"example":{"detail":{"status":"not_found_error","message":"Transcript not found."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-text"],"x-fern-sdk-group-name":["speech_to_text","transcripts"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_transcript_by_id","summary":"Delete Transcript By Id","description":"Delete a previously generated transcript by its ID.","parameters":[{"name":"transcription_id","in":"path","description":"The unique ID of the transcript to delete","required":true,"schema":{"description":"The unique ID of the transcript to delete","type":"string","title":"Transcription Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Delete completed successfully.","content":{"application/json":{"schema":{}}}},"401":{"description":"Authentication required","content":{"application/json":{"example":{"detail":{"status":"unauthorized","message":"Authentication required."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-text"],"x-fern-sdk-group-name":["speech_to_text","transcripts"],"x-fern-sdk-method-name":"delete"}},"/v1/single-use-token/{token_type}":{"post":{"operationId":"get_single_use_token","summary":"Create Single Use Token","description":"Generate a time limited single-use token with embedded authentication for frontend clients.","parameters":[{"name":"token_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/SingleUseTokenType"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleUseTokenResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Single Use Token"],"x-fern-sdk-group-name":["tokens","single_use"],"x-fern-sdk-method-name":"create"}},"/v1/forced-alignment":{"post":{"operationId":"forced_alignment","summary":"Create Forced Alignment","description":"Force align an audio file to text. Use this endpoint to get the timing information for each character and word in an audio file based on a provided text transcript.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_forced_alignment_v1_forced_alignment_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForcedAlignmentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["forced-alignment"],"x-fern-sdk-group-name":"forced_alignment","x-fern-sdk-method-name":"create"}},"/v1/convai/conversation/get-signed-url":{"get":{"operationId":"get_conversation_signed_link","summary":"Get Signed Url","description":"Get a signed url to start a conversation with an agent with an agent that requires authorization","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","type":"string","examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"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":{"description":"Whether to include a conversation_id with the response. If included, the conversation_signature cannot be used again.","type":"boolean","default":false,"title":"Include Conversation Id"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"environment","in":"query","description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","required":false,"schema":{"description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations"],"x-fern-sdk-method-name":"get_signed_url","x-fern-audiences":["convai"]}},"/v1/convai/conversation/token":{"get":{"operationId":"get_livekit_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.","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","type":"string","examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"participant_name","in":"query","description":"Optional custom participant name. If not provided, user ID will be used","required":false,"schema":{"description":"Optional custom participant name. If not provided, user ID will be used","anyOf":[{"type":"string"},{"type":"null"}],"title":"Participant Name"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"environment","in":"query","description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","required":false,"schema":{"description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations"],"x-fern-sdk-method-name":"get_webrtc_token","x-fern-audiences":["convai"]}},"/v1/convai/twilio/outbound-call":{"post":{"operationId":"handle_twilio_outbound_call","summary":"Handle An Outbound Call Via Twilio","description":"Handle an outbound call via Twilio","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Handle_an_outbound_call_via_Twilio_v1_convai_twilio_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","twilio"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/twilio/register-call":{"post":{"operationId":"register_twilio_call","summary":"Register A Twilio Call And Return Twiml","description":"Register a Twilio call and return TwiML to connect the call","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Register_a_Twilio_call_and_return_TwiML_v1_convai_twilio_register_call_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","twilio"],"x-fern-sdk-method-name":"register_call","x-fern-audiences":["convai"]}},"/v1/convai/exotel/outbound-call":{"post":{"operationId":"handle_exotel_outbound_call","summary":"Handle An Outbound Call Via Exotel","description":"Handle an outbound call via Exotel Connect API","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Handle_an_outbound_call_via_Exotel_v1_convai_exotel_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","exotel"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp/outbound-call":{"post":{"operationId":"whatsapp_outbound_call","summary":"Make An Outbound Call Via Whatsapp","description":"Make an outbound call via WhatsApp","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Make_an_outbound_call_via_WhatsApp_v1_convai_whatsapp_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","whatsapp"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp/outbound-message":{"post":{"operationId":"whatsapp_outbound_message","summary":"Send An Outbound Message Via Whatsapp","description":"Send an outbound message via WhatsApp","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Send_an_outbound_message_via_WhatsApp_v1_convai_whatsapp_outbound_message_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","whatsapp"],"x-fern-sdk-method-name":"outbound_message","x-fern-audiences":["convai"]}},"/v1/convai/agents/create":{"post":{"operationId":"create_agent_route","summary":"Create agent","description":"Create an agent from a config object","parameters":[{"name":"enable_versioning","in":"query","description":"Deprecated: all agents are versioned. This parameter is ignored.","required":false,"schema":{"description":"Deprecated: all agents are versioned. This parameter is ignored.","type":"boolean","default":true,"deprecated":true,"title":"Enable Versioning"},"deprecated":true},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_Agent_v1_convai_agents_create_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agents/summaries":{"get":{"operationId":"get_agent_summaries_route","summary":"Get Agent Summaries","description":"Returns summaries for the specified agents.","parameters":[{"name":"agent_ids","in":"query","description":"List of agent IDs to fetch summaries for","required":true,"schema":{"description":"List of agent IDs to fetch summaries for","type":"array","items":{"type":"string"},"examples":["J3Pbu5gP6NNKBscdCdwB","K4Qcu6hQ7OOLCtdeDeXC"],"max_items":100,"title":"Agent Ids"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/AgentSummaryBatchSuccessfulResponseModel"},{"$ref":"#/components/schemas/BatchFailureResponseModel"}],"discriminator":{"propertyName":"status","mapping":{"success":"#/components/schemas/AgentSummaryBatchSuccessfulResponseModel","failure":"#/components/schemas/BatchFailureResponseModel"}}},"title":"Response Get Agent Summaries V1 Convai Agents Summaries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","summaries"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}":{"get":{"operationId":"get_agent_route","summary":"Get agent","description":"Retrieve config for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"version_id","in":"query","description":"The ID of the agent version to use","required":false,"schema":{"description":"The ID of the agent version to use","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agtvrsn_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Version Id"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"patch_agent_settings_route","summary":"Update agent","description":"Patches an Agent settings","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"enable_versioning_if_not_enabled","in":"query","description":"Deprecated: all agents are versioned. This parameter is ignored.","required":false,"schema":{"description":"Deprecated: all agents are versioned. This parameter is ignored.","type":"boolean","default":true,"deprecated":true,"title":"Enable Versioning If Not Enabled"},"deprecated":true},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Patches_an_Agent_settings_v1_convai_agents__agent_id__patch"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_agent_route","summary":"Delete agent","description":"Delete an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response"},"204":{"description":"Agent successfully deleted"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/widget":{"get":{"operationId":"get_agent_widget_route","summary":"Get Agent Widget Config","description":"Retrieve the widget configuration for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"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":{"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","anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Signature"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","widget"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/link":{"get":{"operationId":"get_agent_link_route","summary":"Get Shareable Agent Link","description":"Get the current link used to share the agent with others","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","link"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/avatar":{"post":{"operationId":"post_agent_avatar_route","summary":"Post Agent Avatar","description":"Sets the avatar for an agent displayed in the widget","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Post_Agent_avatar_v1_convai_agents__agent_id__avatar_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","widget","avatar"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agents":{"get":{"operationId":"get_agents_route","summary":"List Agents","description":"Returns a list of your agents and their metadata.","parameters":[{"name":"page_size","in":"query","description":"How many Agents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Agents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"search","in":"query","description":"Search by agents name.","required":false,"schema":{"description":"Search by agents name.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"archived","in":"query","description":"Filter agents by archived status","required":false,"schema":{"description":"Filter agents by archived status","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[false],"title":"Archived"}},{"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":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Show Only Owned Agents"},"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":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/AgentSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agent/{agent_id}/knowledge-base/size":{"get":{"operationId":"get_agent_knowledge_base_size","summary":"Returns The Size Of The Agent'S Knowledge Base","description":"Returns the number of pages in the agent's knowledge base.","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","knowledge_base"],"x-fern-sdk-method-name":"size","x-fern-audiences":["convai"]}},"/v1/convai/agent/{agent_id}/llm-usage/calculate":{"post":{"operationId":"get_agent_llm_expected_cost_calculation","summary":"Calculate Expected Llm Usage For An Agent","description":"Calculates expected number of LLM tokens needed for the specified agent.","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMUsageCalculatorRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","llm_usage"],"x-fern-sdk-method-name":"calculate","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/duplicate":{"post":{"operationId":"duplicate_agent_route","summary":"Duplicate Agent","description":"Create a new agent by duplicating an existing one","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Duplicate_Agent_v1_convai_agents__agent_id__duplicate_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"duplicate","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/simulate-conversation":{"post":{"operationId":"run_conversation_simulation_route","summary":"Simulates A Conversation","description":"Deprecated. 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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Simulates_a_conversation_v1_convai_agents__agent_id__simulate_conversation_post"}}}},"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,"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"simulate_conversation","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/simulate-conversation/stream":{"post":{"operationId":"run_conversation_simulation_route_stream","summary":"Simulates A Conversation (Stream)","description":"Deprecated. 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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Simulates_a_conversation__Stream__v1_convai_agents__agent_id__simulate_conversation_stream_post"}}}},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"simulate_conversation_stream","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/create":{"post":{"operationId":"create_agent_response_test_route","summary":"Create Agent Response Test","description":"Creates a new agent response test.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Create Chat Response Test Request Information","anyOf":[{"$ref":"#/components/schemas/CreateResponseUnitTestRequest"},{"$ref":"#/components/schemas/CreateToolCallUnitTestRequest"},{"$ref":"#/components/schemas/CreateSimulationTestRequest"}],"title":"Test Request"}}}},"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"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/folders":{"post":{"operationId":"create_agent_test_folder_route","summary":"Create Agent Test Folder","description":"Creates a folder for organizing agent tests.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_agent_test_folder_v1_convai_agent_testing_folders_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tests","folders"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/folders/{folder_id}":{"get":{"operationId":"get_agent_test_folder_route","summary":"Get Agent Test Folder By Id","description":"Gets an agent test folder by ID, including its folder path.","parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"description":"The folder ID.","type":"string","examples":["tfld_7301khxdkycse5f88fzjdtrterzm"],"title":"Folder Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tests","folders"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_agent_test_folder_route","summary":"Update Agent Test Folder","description":"Updates an agent test folder. Currently only supports updating the folder name.","parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"description":"The folder ID.","type":"string","examples":["tfld_7301khxdkycse5f88fzjdtrterzm"],"title":"Folder Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_agent_test_folder_v1_convai_agent_testing_folders__folder_id__patch"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tests","folders"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_agent_test_folder_route","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.","parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"description":"The folder ID.","type":"string","examples":["tfld_7301khxdkycse5f88fzjdtrterzm"],"title":"Folder Id"}},{"name":"force","in":"query","description":"Force delete. Required for deleting non-empty folders.","required":false,"schema":{"description":"Force delete. Required for deleting non-empty folders.","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Folder successfully deleted"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tests","folders"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/bulk-move":{"post":{"operationId":"agent_testing_bulk_move_route","summary":"Bulk Move Tests To Folder","description":"Moves multiple tests or folders from one folder to another.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bulk_move_tests_to_folder_v1_convai_agent_testing_bulk_move_post"}}}},"responses":{"200":{"description":"Tests or folders successfully moved to another folder","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tests"],"x-fern-sdk-method-name":"move","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/{test_id}":{"get":{"operationId":"get_agent_response_test_route","summary":"Get Agent Response Test By Id","description":"Gets an agent response test by ID.","parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"description":"The id of a chat response test. This is returned on test creation.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Test Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"llm":"#/components/schemas/GetResponseUnitTestResponseModel","tool":"#/components/schemas/GetToolCallUnitTestResponseModel","simulation":"#/components/schemas/GetSimulationTestResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetResponseUnitTestResponseModel"},{"$ref":"#/components/schemas/GetToolCallUnitTestResponseModel"},{"$ref":"#/components/schemas/GetSimulationTestResponseModel"}],"title":"Response Get Agent Response Test By Id V1 Convai Agent Testing Test Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"put":{"operationId":"update_agent_response_test_route","summary":"Update Agent Response Test","description":"Updates an agent response test by ID.","parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"description":"The id of a chat response test. This is returned on test creation.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Test Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Agent test to update","anyOf":[{"$ref":"#/components/schemas/UpdateResponseUnitTestRequest"},{"$ref":"#/components/schemas/UpdateToolCallUnitTestRequest"},{"$ref":"#/components/schemas/UpdateSimulationTestRequest"}],"title":"Test Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"llm":"#/components/schemas/GetResponseUnitTestResponseModel","tool":"#/components/schemas/GetToolCallUnitTestResponseModel","simulation":"#/components/schemas/GetSimulationTestResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetResponseUnitTestResponseModel"},{"$ref":"#/components/schemas/GetToolCallUnitTestResponseModel"},{"$ref":"#/components/schemas/GetSimulationTestResponseModel"}],"title":"Response Update Agent Response Test V1 Convai Agent Testing Test Id Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_chat_response_test_route","summary":"Delete Agent Response Test","description":"Deletes an agent response test by ID.","parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"description":"The id of a chat response test. This is returned on test creation.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Test Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/summaries":{"post":{"operationId":"get_agent_response_tests_summaries_route","summary":"Get Agent Response Test Summaries By Ids","description":"Gets multiple agent response tests by their IDs. Returns a dictionary mapping test IDs to test summaries.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTestsByIdsRequestModel"}}}},"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"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests"],"x-fern-sdk-method-name":"summaries","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing":{"get":{"operationId":"list_chat_response_tests_route","summary":"List Agent Response Tests","description":"Lists all agent response tests with pagination support and optional search filtering.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"search","in":"query","description":"Search query to filter tests by name.","required":false,"schema":{"description":"Search query to filter tests by name.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"parent_folder_id","in":"query","description":"Filter by parent folder ID. Use 'root' to get items in the root folder.","required":false,"schema":{"description":"Filter by parent folder ID. Use 'root' to get items in the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},{"name":"types","in":"query","description":"If present, the endpoint will return only tests/folders of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only tests/folders of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/TestType"}},{"type":"null"}],"title":"Types"}},{"name":"include_folders","in":"query","description":"Deprecated. Use the `types` query param and include `folder` instead.","required":false,"schema":{"description":"Deprecated. Use the `types` query param and include `folder` instead.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Include Folders"},"deprecated":true},{"name":"sort_mode","in":"query","description":"Sort mode for listing tests. Use 'folders_first' to place folders before tests.","required":false,"schema":{"description":"Sort mode for listing tests. Use 'folders_first' to place folders before tests.","type":"string","default":"default","enum":["default","folders_first"],"title":"Sort Mode"}},{"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":{"description":"Filter test visibility. Use `shared_with_me` to return only tests/folders shared with the current user that they did not create.","default":"all","$ref":"#/components/schemas/TestSharingMode"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/test-invocations":{"get":{"operationId":"list_test_invocations_route","summary":"List Test Invocations","description":"Lists all test invocations with pagination support and optional search filtering.","parameters":[{"name":"agent_id","in":"query","description":"Filter by agent ID","required":false,"schema":{"description":"Filter by agent ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"page_size","in":"query","description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests","invocations"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/run-tests":{"post":{"operationId":"run_agent_test_suite_route","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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentTestsRequestModel"}}}},"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"}}}}},"x-fern-sdk-group-name":["conversational_ai","agents"],"x-fern-sdk-method-name":"run_tests","x-fern-audiences":["convai"]}},"/v1/convai/test-invocations/{test_invocation_id}":{"get":{"operationId":"get_test_invocation_route","summary":"Get Test Invocation","description":"Gets a test invocation by ID.","parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"description":"The id of a test invocation. This is returned when tests are run.","type":"string","embed":true,"title":"Test Invocation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests","invocations"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/test-invocations/{test_invocation_id}/resubmit":{"post":{"operationId":"resubmit_tests_route","summary":"Resubmit Tests","description":"Resubmits specific test runs from a test invocation.","parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"description":"The id of a test invocation. This is returned when tests are run.","type":"string","embed":true,"title":"Test Invocation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResubmitTestsRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["conversational_ai","tests","invocations"],"x-fern-sdk-method-name":"resubmit","x-fern-audiences":["convai"]}},"/v1/convai/conversations":{"get":{"operationId":"get_conversation_histories_route","summary":"List conversations","description":"Get all conversations of agents that user owns. With option to restrict to a specific agent.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"call_successful","in":"query","description":"The result of the success evaluation","required":false,"schema":{"description":"The result of the success evaluation","anyOf":[{"$ref":"#/components/schemas/EvaluationSuccessResult"},{"type":"null"}],"examples":["success"],"title":"Call Successful"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations up to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start Before Unix"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations after to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start After Unix"}},{"name":"call_duration_min_secs","in":"query","description":"Minimum call duration in seconds.","required":false,"schema":{"description":"Minimum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Min Secs"}},{"name":"call_duration_max_secs","in":"query","description":"Maximum call duration in seconds.","required":false,"schema":{"description":"Maximum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Max Secs"}},{"name":"rating_max","in":"query","description":"Maximum overall rating (1-5).","required":false,"schema":{"description":"Maximum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Max"}},{"name":"rating_min","in":"query","description":"Minimum overall rating (1-5).","required":false,"schema":{"description":"Minimum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Min"}},{"name":"has_feedback_comment","in":"query","description":"Filter conversations with user feedback comments.","required":false,"schema":{"description":"Filter conversations with user feedback comments.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Feedback Comment"}},{"name":"user_id","in":"query","description":"Filter conversations by the user ID who initiated them.","required":false,"schema":{"description":"Filter conversations by the user ID who initiated them.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"evaluation_params","in":"query","description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","required":false,"schema":{"description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Evaluation Params"}},{"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|exists|missing. For in, pipe-delimit values.","required":false,"schema":{"description":"Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Data Collection Params"}},{"name":"tool_names","in":"query","description":"Filter conversations by tool names used during the call.","required":false,"schema":{"description":"Filter conversations by tool names used during the call.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names"}},{"name":"tool_names_successful","in":"query","description":"Filter conversations by tool names that had successful calls.","required":false,"schema":{"description":"Filter conversations by tool names that had successful calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Successful"}},{"name":"tool_names_errored","in":"query","description":"Filter conversations by tool names that had errored calls.","required":false,"schema":{"description":"Filter conversations by tool names that had errored calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Errored"}},{"name":"main_languages","in":"query","description":"Filter conversations by detected main language (language code).","required":false,"schema":{"description":"Filter conversations by detected main language (language code).","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Main Languages"}},{"name":"page_size","in":"query","description":"How many conversations to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many conversations to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"summary_mode","in":"query","description":"Whether to include transcript summaries in the response.","required":false,"schema":{"description":"Whether to include transcript summaries in the response.","type":"string","default":"exclude","enum":["exclude","include"],"title":"Summary Mode"}},{"name":"search","in":"query","description":"Full-text or fuzzy search over transcript messages","required":false,"schema":{"description":"Full-text or fuzzy search over transcript messages","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Search"},"deprecated":true},{"name":"conversation_initiation_source","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}],"title":"Conversation Initiation Source"}},{"name":"text_only","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only"}},{"name":"conversation_product_type","in":"query","description":"Restrict results to a single conversation product surface.","required":false,"schema":{"description":"Restrict results to a single conversation product surface.","anyOf":[{"$ref":"#/components/schemas/ConversationProduct"},{"type":"null"}],"title":"Conversation Product Type"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"description":"Filter conversations by branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"topic_ids","in":"query","description":"Filter conversations by topic IDs assigned during topic discovery.","required":false,"schema":{"description":"Filter conversations by topic IDs assigned during topic discovery.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Topic Ids"}},{"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":{"description":"Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views.","anyOf":[{"type":"array","items":{"enum":["initiated","in-progress","processing","done","failed"],"type":"string"}},{"type":"null"}],"title":"Exclude Statuses"}},{"name":"tag_ids","in":"query","description":"Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints.","required":false,"schema":{"description":"Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tag Ids"}},{"name":"workflow_node_entered_id","in":"query","description":"Filter conversations to only those that entered the given node.","required":false,"schema":{"description":"Filter conversations to only those that entered the given node.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Entered Id"}},{"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":{"description":"Filter conversations by their stored termination_reason (metadata.termination_reason). Repeat param to match any of several.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Termination Reasons"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/users":{"get":{"operationId":"get_conversation_users_route","summary":"Get Conversation Users","description":"Get distinct users from conversations with pagination.","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"description":"Filter conversations by branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations up to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start Before Unix"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations after to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start After Unix"}},{"name":"search","in":"query","description":"Search/filter by user ID (exact match).","required":false,"schema":{"description":"Search/filter by user ID (exact match).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"page_size","in":"query","description":"How many users to return at maximum. Defaults to 30.","required":false,"schema":{"description":"How many users to return at maximum. Defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"sort_by","in":"query","description":"The field to sort the results by. Defaults to last_contact_unix_secs.","required":false,"schema":{"description":"The field to sort the results by. Defaults to last_contact_unix_secs.","default":"last_contact_unix_secs","$ref":"#/components/schemas/UsersSortBy"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","users"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/conversations/resolve":{"get":{"operationId":"resolve_conversation_reference_route","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.","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","type":"string","examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"reference","in":"query","description":"A Slack message URL or a Zendesk ticket URL.","required":true,"schema":{"description":"A Slack message URL or a Zendesk ticket URL.","type":"string","examples":["https://your-domain.zendesk.com/agent/tickets/12345","https://your-team.slack.com/archives/C0123ABCD/p1700000000123456"],"title":"Reference"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations"],"x-fern-sdk-method-name":"resolve","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}":{"get":{"operationId":"get_conversation_history_route","summary":"Get Conversation Details","description":"Get the details of a particular conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"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":{"description":"Response format. Defaults to 'json'. Set to 'opentelemetry' for an OTLP-compatible trace payload using the same structure as the post-call webhook.","type":"string","default":"json","enum":["json","opentelemetry"],"title":"Format"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_conversation_route","summary":"Delete Conversation","description":"Delete a particular conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/sip-messages":{"get":{"operationId":"get_conversation_sip_messages","summary":"Get Sip Messages For A Conversation","description":"Get SIP messages associated with a conversation's phone call","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":20,"maximum":20,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations"],"x-fern-sdk-method-name":"get_sip_messages","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/audio":{"get":{"operationId":"get_conversation_audio_route","summary":"Get Conversation Audio","description":"Get the audio recording of a particular conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","audio"],"x-fern-sdk-method-name":"get","x-fern-streaming":true,"x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/feedback":{"post":{"operationId":"post_conversation_feedback_route","summary":"Send Conversation Feedback","description":"Send the feedback for the given conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationFeedbackRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","feedback"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/conversations/messages/text-search":{"get":{"operationId":"text_search_conversation_messages_route","summary":"Text Search Conversation Messages","description":"Search through conversation transcript messages by full-text and fuzzy search","parameters":[{"name":"text_query","in":"query","description":"The search query text for full-text and fuzzy matching","required":true,"schema":{"description":"The search query text for full-text and fuzzy matching","type":"string","title":"Text Query"},"examples":{"default":{"summary":"Keyword-style query","value":"refund policy"}}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"call_successful","in":"query","description":"The result of the success evaluation","required":false,"schema":{"description":"The result of the success evaluation","anyOf":[{"$ref":"#/components/schemas/EvaluationSuccessResult"},{"type":"null"}],"examples":["success"],"title":"Call Successful"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations up to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start Before Unix"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations after to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start After Unix"}},{"name":"call_duration_min_secs","in":"query","description":"Minimum call duration in seconds.","required":false,"schema":{"description":"Minimum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Min Secs"}},{"name":"call_duration_max_secs","in":"query","description":"Maximum call duration in seconds.","required":false,"schema":{"description":"Maximum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Max Secs"}},{"name":"rating_max","in":"query","description":"Maximum overall rating (1-5).","required":false,"schema":{"description":"Maximum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Max"}},{"name":"rating_min","in":"query","description":"Minimum overall rating (1-5).","required":false,"schema":{"description":"Minimum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Min"}},{"name":"has_feedback_comment","in":"query","description":"Filter conversations with user feedback comments.","required":false,"schema":{"description":"Filter conversations with user feedback comments.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Feedback Comment"}},{"name":"user_id","in":"query","description":"Filter conversations by the user ID who initiated them.","required":false,"schema":{"description":"Filter conversations by the user ID who initiated them.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"evaluation_params","in":"query","description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","required":false,"schema":{"description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Evaluation Params"}},{"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|exists|missing. For in, pipe-delimit values.","required":false,"schema":{"description":"Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Data Collection Params"}},{"name":"tool_names","in":"query","description":"Filter conversations by tool names used during the call.","required":false,"schema":{"description":"Filter conversations by tool names used during the call.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names"}},{"name":"tool_names_successful","in":"query","description":"Filter conversations by tool names that had successful calls.","required":false,"schema":{"description":"Filter conversations by tool names that had successful calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Successful"}},{"name":"tool_names_errored","in":"query","description":"Filter conversations by tool names that had errored calls.","required":false,"schema":{"description":"Filter conversations by tool names that had errored calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Errored"}},{"name":"main_languages","in":"query","description":"Filter conversations by detected main language (language code).","required":false,"schema":{"description":"Filter conversations by detected main language (language code).","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Main Languages"}},{"name":"page_size","in":"query","description":"Number of results per page. Max 50.","required":false,"schema":{"description":"Number of results per page. Max 50.","type":"integer","default":20,"maximum":50,"minimum":1,"title":"Page Size"}},{"name":"summary_mode","in":"query","description":"Whether to include transcript summaries in the response.","required":false,"schema":{"description":"Whether to include transcript summaries in the response.","type":"string","default":"exclude","enum":["exclude","include"],"title":"Summary Mode"}},{"name":"conversation_initiation_source","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}],"title":"Conversation Initiation Source"}},{"name":"text_only","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only"}},{"name":"conversation_product_type","in":"query","description":"Restrict results to a single conversation product surface.","required":false,"schema":{"description":"Restrict results to a single conversation product surface.","anyOf":[{"$ref":"#/components/schemas/ConversationProduct"},{"type":"null"}],"title":"Conversation Product Type"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"description":"Filter conversations by branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"topic_ids","in":"query","description":"Filter conversations by topic IDs assigned during topic discovery.","required":false,"schema":{"description":"Filter conversations by topic IDs assigned during topic discovery.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Topic Ids"}},{"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":{"description":"Sort order for search results. 'search_score' sorts by search score, 'created_at' sorts by conversation start time.","default":"search_score","$ref":"#/components/schemas/MessageSearchSortBy"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","messages"],"x-fern-sdk-method-name":"text_search","x-fern-audiences":["convai"]}},"/v1/convai/conversations/messages/smart-search":{"get":{"operationId":"smart_search_conversation_messages_route","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","parameters":[{"name":"text_query","in":"query","description":"The search query text for semantic similarity matching","required":true,"schema":{"description":"The search query text for semantic similarity matching","type":"string","title":"Text Query"},"examples":{"default":{"summary":"Intent-style query","value":"Customer asking to cancel and get money back"}}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"page_size","in":"query","description":"Number of results per page. Max 50.","required":false,"schema":{"description":"Number of results per page. Max 50.","type":"integer","default":20,"maximum":50,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","messages"],"x-fern-sdk-method-name":"search","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/tags":{"post":{"operationId":"assign_conversation_tags_route","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.","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tag ids to assign to the conversation.","$ref":"#/components/schemas/AssignConversationTagsRequestModel"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","tags"],"x-fern-sdk-method-name":"assign","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/tags/{tag_id}":{"delete":{"operationId":"unassign_conversation_tag_route","summary":"Unassign Conversation Tag","description":"Remove a single conversation tag from a conversation.","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","tags"],"x-fern-sdk-method-name":"unassign","x-fern-audiences":["convai"]}},"/v1/convai/tags":{"get":{"operationId":"list_conversation_tags_route","summary":"List Conversation Tags","description":"List conversation tags for the workspace, ordered by most recently created first.","parameters":[{"name":"page_size","in":"query","description":"How many conversation tags to return. Can not exceed 100.","required":false,"schema":{"description":"How many conversation tags to return. Can not exceed 100.","type":"integer","default":100,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","tags"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]},"post":{"operationId":"create_conversation_tag_route","summary":"Create Conversation Tag","description":"Create a new conversation tag for the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Conversation tag to create.","$ref":"#/components/schemas/CreateConversationTagRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","tags"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/tags/{tag_id}":{"get":{"operationId":"get_conversation_tag_route","summary":"Get Conversation Tag","description":"Get a conversation tag by ID.","parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","tags"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_conversation_tag_route","summary":"Update Conversation Tag","description":"Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin.","parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Fields to update. Omit a field to leave it unchanged.","$ref":"#/components/schemas/PatchConversationTagRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","tags"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_conversation_tag_route","summary":"Delete Conversation Tag","description":"Delete a conversation tag. Restricted to the tag owner or a workspace admin.","parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","tags"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/phone-numbers":{"post":{"operationId":"create_phone_number_route","summary":"Import Phone Number","description":"Import Phone Number from provider configuration (Twilio, Exotel, or SIP trunk)","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Create Phone Request Information","anyOf":[{"$ref":"#/components/schemas/CreateTwilioPhoneNumberRequest"},{"$ref":"#/components/schemas/CreateExotelPhoneNumberRequest"},{"$ref":"#/components/schemas/CreateSIPTrunkPhoneNumberRequestV2"}],"title":"Phone Request"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","phone_numbers"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"list_phone_numbers_route","summary":"List Phone Numbers","description":"Retrieve all Phone Numbers","parameters":[{"name":"provider","in":"query","description":"Filter by telephony provider","required":false,"schema":{"description":"Filter by telephony provider","anyOf":[{"$ref":"#/components/schemas/TelephonyProvider"},{"type":"null"}],"title":"Provider"}},{"name":"agent_id","in":"query","description":"Filter by assigned agent ID","required":false,"schema":{"description":"Filter by assigned agent ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"Filter by assigned branch ID","required":false,"schema":{"description":"Filter by assigned branch ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"discriminator":{"propertyName":"provider","mapping":{"twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel","exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}}},"title":"Response List Phone Numbers V1 Convai Phone Numbers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","phone_numbers"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/phone-numbers/{phone_number_id}":{"get":{"operationId":"get_phone_number_route","summary":"Get Phone Number","description":"Retrieve Phone Number details by ID","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"provider","mapping":{"twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel","exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"title":"Response Get Phone Number V1 Convai Phone Numbers Phone Number Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","phone_numbers"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_phone_number_route","summary":"Delete Phone Number","description":"Delete Phone Number by ID","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","phone_numbers"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]},"patch":{"operationId":"update_phone_number_route","summary":"Update Phone Number","description":"Update assigned agent of a phone number","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Patch Phone Request Information","$ref":"#/components/schemas/UpdatePhoneNumberRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"provider","mapping":{"twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel","exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"title":"Response Update Phone Number V1 Convai Phone Numbers Phone Number Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","phone_numbers"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/phone-numbers/{phone_number_id}/sip-messages":{"get":{"operationId":"list_sip_messages","summary":"Get Sip Messages For A Phone Number","description":"Get SIP messages for a phone number","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":20,"maximum":20,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","phone_numbers"],"x-fern-sdk-method-name":"get_sip_messages","x-fern-audiences":["convai"]}},"/v1/convai/llm-usage/calculate":{"post":{"operationId":"get_public_llm_expected_cost_calculation","summary":"Calculate Expected Llm Usage","description":"Returns a list of LLM models and the expected cost for using them based on the provided values.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMUsageCalculatorPublicRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","llm_usage"],"x-fern-sdk-method-name":"calculate","x-fern-audiences":["convai"]}},"/v1/convai/llm/list":{"get":{"operationId":"list_available_llms","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.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMListResponseModel-Input"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","llm"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/files":{"post":{"operationId":"upload_file_route","summary":"Upload File","description":"Upload an image or PDF file for a conversation. Returns a unique file ID that can be used to reference the file in the conversation.","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Upload_file_v1_convai_conversations__conversation_id__files_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","files"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/files/{file_id}":{"delete":{"operationId":"cancel_file_upload_route","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.","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","files"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/analytics/live-count":{"get":{"operationId":"get_live_count","summary":"Get Live Count","description":"Get the live count of the ongoing conversations.","parameters":[{"name":"agent_id","in":"query","description":"The id of an agent to restrict the analytics to.","required":false,"schema":{"description":"The id of an agent to restrict the analytics to.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","analytics","live_count"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/summaries":{"get":{"operationId":"get_agent_knowledge_base_summaries_route","summary":"Get Knowledge Base Summaries By Ids","description":"Gets multiple knowledge base document summaries by their IDs.","parameters":[{"name":"document_ids","in":"query","description":"The ids of knowledge base documents.","required":true,"schema":{"description":"The ids of knowledge base documents.","type":"array","items":{"type":"string"},"examples":[["21m00Tcm4TlvDq8ikWAM","31n11Udm5UmwEr9jkXBN"]],"maxItems":100,"minItems":1,"title":"Document Ids"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/KnowledgeBaseSummaryBatchSuccessfulResponseModel"},{"$ref":"#/components/schemas/BatchFailureResponseModel"}],"discriminator":{"propertyName":"status","mapping":{"success":"#/components/schemas/KnowledgeBaseSummaryBatchSuccessfulResponseModel","failure":"#/components/schemas/BatchFailureResponseModel"}}},"title":"Response Get Knowledge Base Summaries By Ids V1 Convai Knowledge Base Summaries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents","summaries"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base":{"post":{"operationId":"add_documentation_to_knowledge_base","summary":"Add To Knowledge Base","description":"Upload a file or webpage URL to create a knowledge base document.
After creating the document, update the agent's knowledge base by calling [Update agent](/docs/api-reference/agents/update). ","parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_to_knowledge_base_v1_convai_knowledge_base_post"}}}},"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"}}}}},"deprecated":true,"tags":["Agents Platform"],"x-fern-sdk-group-name":"conversational_ai","x-fern-sdk-method-name":"add_to_knowledge_base"},"get":{"operationId":"get_knowledge_base_list_route","summary":"Get Knowledge Base List","description":"Get a list of available knowledge base documents","parameters":[{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"search","in":"query","description":"If specified, the endpoint returns only such knowledge base documents whose names start with this string.","required":false,"schema":{"description":"If specified, the endpoint returns only such knowledge base documents whose names start with this string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"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":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Show Only Owned Documents"},"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":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"}},{"name":"types","in":"query","description":"If present, the endpoint will return only documents of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only documents of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseDocumentType"}},{"type":"null"}],"title":"Types"}},{"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":{"description":"If set, the endpoint will return only documents that are direct children of the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},{"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":{"description":"If set, the endpoint will return only documents that are descendants of the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Ancestor Folder Id"}},{"name":"folders_first","in":"query","description":"Whether folders should be returned first in the list of documents.","required":false,"schema":{"description":"Whether folders should be returned first in the list of documents.","type":"boolean","default":false,"title":"Folders First"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/KnowledgeBaseSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/url":{"post":{"operationId":"create_url_document_route","summary":"Create Url Document","description":"Create a knowledge base document generated by scraping the given webpage.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_URL_document_v1_convai_knowledge_base_url_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"create_from_url","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/file":{"post":{"operationId":"create_file_document_route","summary":"Create File Document","description":"Create a knowledge base document generated form the uploaded file.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_file_document_v1_convai_knowledge_base_file_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"create_from_file","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/text":{"post":{"operationId":"create_text_document_route","summary":"Create Text Document","description":"Create a knowledge base document containing the provided text.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_text_document_v1_convai_knowledge_base_text_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"create_from_text","x-fern-audiences":["convai"]},"section":"Legacy"},"/v1/convai/knowledge-base/folder":{"post":{"operationId":"create_folder_route","summary":"Create Folder","description":"Create a folder used for grouping documents together.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_folder_v1_convai_knowledge_base_folder_post"}}}},"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"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"create_folder","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}":{"patch":{"operationId":"update_document_route","summary":"Update Document","description":"Update the name and/or content of a 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_document_v1_convai_knowledge_base__documentation_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Update Document V1 Convai Knowledge Base Documentation Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"get":{"operationId":"get_documentation_from_knowledge_base","summary":"Get Documentation From Knowledge Base","description":"Get details about a specific documentation making up the agent's knowledge base","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"agent_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Get Documentation From Knowledge Base V1 Convai Knowledge Base Documentation Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_knowledge_base_document","summary":"Delete Knowledge Base Document Or Folder","description":"Delete a document or folder from the knowledge base.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"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":{"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.","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/update-file":{"patch":{"operationId":"update_file_document_route","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.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Update_file_document_v1_convai_knowledge_base__documentation_id__update_file_patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Update File Document V1 Convai Knowledge Base Documentation Id Update File Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","document"],"x-fern-sdk-method-name":"update_file","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/rag-index":{"post":{"operationId":"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.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Compute_RAG_indexes_in_batch_v1_convai_knowledge_base_rag_index_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/RAGIndexBatchSuccessfulResponseModel"},{"$ref":"#/components/schemas/BatchFailureResponseModel"}],"discriminator":{"propertyName":"status","mapping":{"success":"#/components/schemas/RAGIndexBatchSuccessfulResponseModel","failure":"#/components/schemas/BatchFailureResponseModel"}}},"title":"Response Compute Rag Indexes In Batch V1 Convai Knowledge Base Rag Index Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base"],"x-fern-sdk-method-name":"get_or_create_rag_indexes","x-fern-audiences":["convai"]},"get":{"operationId":"get_rag_index_overview","summary":"Get Rag Index Overview.","description":"Provides total size and other information of RAG indexes used by knowledgebase documents","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"conversational_ai","x-fern-sdk-method-name":"rag_index_overview","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/refresh":{"post":{"operationId":"refresh_url_document_route","summary":"Refresh Url Document Content","description":"Manually refresh a URL document by re-fetching its content from the source URL.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Refresh Url Document Content V1 Convai Knowledge Base Documentation Id Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","document"],"x-fern-sdk-method-name":"refresh","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/rag-index":{"post":{"operationId":"rag_index_status","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.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Payload for RAG index status endpoint.","$ref":"#/components/schemas/RAGIndexRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","document"],"x-fern-sdk-method-name":"compute_rag_index","x-fern-audiences":["convai"]},"get":{"operationId":"get_rag_indexes","summary":"Get Rag Indexes Of The Specified Knowledgebase Document.","description":"Provides information about all RAG indexes of the specified knowledgebase 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"conversational_ai","x-fern-sdk-method-name":"get_document_rag_indexes","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/rag-index/{rag_index_id}":{"delete":{"operationId":"delete_rag_index","summary":"Delete Rag Index.","description":"Delete RAG index for the knowledgebase 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"rag_index_id","in":"path","description":"The id of RAG index of document from the knowledge base.","required":true,"schema":{"description":"The id of RAG index of document from the knowledge base.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Rag Index Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"conversational_ai","x-fern-sdk-method-name":"delete_document_rag_index","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/search":{"get":{"operationId":"search_knowledge_base_content_route","summary":"Search Knowledge Base Content","description":"Fuzzy text search over knowledge base document content","parameters":[{"name":"query","in":"query","description":"The search query text","required":true,"schema":{"description":"The search query text","type":"string","title":"Query"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"types","in":"query","description":"If present, the endpoint will return only documents of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only documents of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseDocumentType"}},{"type":"null"}],"title":"Types"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base"],"x-fern-sdk-method-name":"search","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/dependent-agents":{"get":{"operationId":"get_knowledge_base_dependent_agents","summary":"Get Dependent Agents List","description":"Get a list of agents depending on this knowledge base 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"dependent_type","in":"query","description":"Type of dependent agents to return.","required":false,"schema":{"description":"Type of dependent agents to return.","default":"all","$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":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"get_agents","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/content":{"get":{"operationId":"get_knowledge_base_content","summary":"Get Document Content","description":"Get the entire content of a document from the knowledge base","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Streaming document content","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"get_content","x-fern-sdk-streaming":true,"x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/source-file-url":{"get":{"operationId":"get_knowledge_base_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","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"get_source_file_url","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/chunk/{chunk_id}":{"get":{"operationId":"get_documentation_chunk_from_knowledge_base","summary":"Get Documentation Chunk From Knowledge Base","description":"Get details about a specific documentation part used by RAG.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"chunk_id","in":"path","description":"The id of a document RAG chunk from the knowledge base.","required":true,"schema":{"description":"The id of a document RAG chunk from the knowledge base.","type":"string","embed":true,"examples":[1],"title":"Chunk Id"}},{"name":"embedding_model","in":"query","description":"The embedding model used to retrieve the chunk.","required":false,"schema":{"description":"The embedding model used to retrieve the chunk.","anyOf":[{"$ref":"#/components/schemas/EmbeddingModelEnum"},{"type":"null"}],"examples":["e5_mistral_7b_instruct","multilingual_e5_large_instruct"],"title":"Embedding Model"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents","chunk"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/chunks":{"get":{"operationId":"get_documentation_chunks_from_knowledge_base","summary":"Get All Rag Chunks For A Document","description":"Get all RAG chunks for a specific knowledge base 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"embedding_model","in":"query","description":"The embedding model used to retrieve the chunk.","required":true,"schema":{"description":"The embedding model used to retrieve the chunk.","$ref":"#/components/schemas/EmbeddingModelEnum","examples":["e5_mistral_7b_instruct","multilingual_e5_large_instruct"]}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents","chunks"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{document_id}/move":{"post":{"operationId":"post_knowledge_base_move_route","summary":"Move Entity To Folder","description":"Moves the entity from one folder to another.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Document Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Move_entity_to_folder_v1_convai_knowledge_base__document_id__move_post"}}}},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"move","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/bulk-move":{"post":{"operationId":"post_knowledge_base_bulk_move_route","summary":"Bulk Move Entities To Folder","description":"Moves multiple entities from one folder to another.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bulk_move_entities_to_folder_v1_convai_knowledge_base_bulk_move_post"}}}},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["conversational_ai","knowledge_base","documents"],"x-fern-sdk-method-name":"bulk_move","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/topics":{"get":{"operationId":"get_agent_topics_route","summary":"Get Agent Conversation Topics","description":"Returns the latest topic discovery run results for a given agent.","parameters":[{"name":"agent_id","in":"path","description":"ID of the agent","required":true,"schema":{"description":"ID of the agent","type":"string","title":"Agent Id"}},{"name":"from_unix_secs","in":"query","description":"Start of the window to view topics for. When set with to_unix_secs, per-day topics in the range are aggregated together.","required":false,"schema":{"description":"Start of the window to view topics for. When set with to_unix_secs, per-day topics in the range are aggregated together.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Unix Secs"}},{"name":"to_unix_secs","in":"query","description":"End of the window to view topics for.","required":false,"schema":{"description":"End of the window to view topics for.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Unix Secs"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Insights","Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","conversations","topics"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/tools":{"post":{"operationId":"add_tool_route","summary":"Add Tool","description":"Add a new tool to the available tools in the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"A tool that an agent can provide to LLM.","$ref":"#/components/schemas/ToolRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tools"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"get_tools_route","summary":"Get Tools","description":"Get all available tools in the workspace.","parameters":[{"name":"search","in":"query","description":"If specified, the endpoint returns only tools whose names start with this string.","required":false,"schema":{"description":"If specified, the endpoint returns only tools whose names start with this string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Page Size"}},{"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":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Show Only Owned Documents"},"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":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"}},{"name":"types","in":"query","description":"If present, the endpoint will return only tools of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only tools of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ToolTypeFilter"}},{"type":"null"}],"title":"Types"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/ToolSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tools"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/tools/{tool_id}":{"get":{"operationId":"get_tool_route","summary":"Get Tool","description":"Get tool that is available in the workspace.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tools"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_tool_route","summary":"Update Tool","description":"Update tool that is available in the workspace.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"A tool that an agent can provide to LLM.","$ref":"#/components/schemas/ToolRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tools"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_tool_route","summary":"Delete Tool","description":"Delete tool from the workspace.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"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":{"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.","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tools"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/tools/{tool_id}/dependent-agents":{"get":{"operationId":"get_tool_dependent_agents_route","summary":"Get Dependent Agents List","description":"Get a list of agents depending on this tool","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tools"],"x-fern-sdk-method-name":"get_dependent_agents","x-fern-audiences":["convai"]}},"/v1/convai/tools/{tool_id}/executions":{"get":{"operationId":"get_tool_executions_route","summary":"Get Tool Executions","description":"Get paginated list of tool executions for a specific tool.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"is_error","in":"query","description":"Filter by error status. If not provided, returns all executions.","required":false,"schema":{"description":"Filter by error status. If not provided, returns all executions.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Error"}},{"name":"agent_id","in":"query","description":"Filter by agent ID.","required":false,"schema":{"description":"Filter by agent ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"Filter by agent branch ID.","required":false,"schema":{"description":"Filter by agent branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"start_time","in":"query","description":"Filter executions from this Unix timestamp (inclusive).","required":false,"schema":{"description":"Filter executions from this Unix timestamp (inclusive).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","description":"Filter executions until this Unix timestamp (inclusive).","required":false,"schema":{"description":"Filter executions until this Unix timestamp (inclusive).","anyOf":[{"type":"number"},{"type":"null"}],"title":"End Time"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","tools","executions"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/settings":{"get":{"operationId":"get_settings_route","summary":"Get Convai Settings","description":"Retrieve Convai settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","settings"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_settings_route","summary":"Update Convai Settings","description":"Update Convai settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Convai settings to update","$ref":"#/components/schemas/PatchConvAISettingsRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","settings"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/settings/dashboard":{"get":{"operationId":"get_dashboard_settings_route","summary":"Get Convai Dashboard Settings","description":"Retrieve Convai dashboard settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","dashboard","settings"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_dashboard_settings_route","summary":"Update Convai Dashboard Settings","description":"Update Convai dashboard settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Convai dashboard settings to update","$ref":"#/components/schemas/PatchConvAIDashboardSettingsRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","dashboard","settings"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/secrets":{"post":{"operationId":"create_secret_route","summary":"Create Convai Workspace Secret","description":"Create a new secret for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Secret to create","$ref":"#/components/schemas/PostWorkspaceSecretRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","secrets"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"get_secrets_route","summary":"Get Convai Workspace Secrets","description":"Get all workspace secrets for the user","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":{"description":"How many documents to return at maximum. Can not exceed 100. If not provided, returns all secrets.","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Page Size"}},{"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":{"description":"Maximum number of dependent resources (tools, agents, phone numbers) to return per secret. Can not exceed 100.","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Dependency Limit"}},{"name":"search","in":"query","description":"If specified, returns only secrets whose names start with this string.","required":false,"schema":{"description":"If specified, returns only secrets whose names start with this string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","secrets"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/secrets/{secret_id}":{"get":{"operationId":"get_secret_route","summary":"Get Convai Workspace Secret","description":"Get a workspace secret by ID","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","secrets"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_secret_route","summary":"Delete Convai Workspace Secret","description":"Delete a workspace secret if it's not in use","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","secrets"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]},"patch":{"operationId":"update_secret_route","summary":"Update Convai Workspace Secret","description":"Update an existing secret for the workspace","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Secret data to update","$ref":"#/components/schemas/PatchWorkspaceSecretRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","secrets"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/secrets/{secret_id}/dependencies/{resource_type}":{"get":{"operationId":"get_secret_dependencies_route","summary":"Get Secret Dependencies By Type","description":"Get paginated list of resources that depend on a specific secret, filtered by resource type.","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"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":{"description":"How many dependency items to return per page.","type":"integer","default":20,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","secrets"],"x-fern-sdk-method-name":"get_dependencies","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/submit":{"post":{"operationId":"create_batch_call","summary":"Submit A Batch Call Request.","description":"Submit a batch call request to schedule calls for multiple recipients.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Submit_a_batch_call_request__v1_convai_batch_calling_submit_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","batch_calls"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/workspace":{"get":{"operationId":"get_workspace_batch_calls","summary":"Get All Batch Calls For A Workspace.","description":"Get all batch calls for the current workspace.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"last_doc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Doc"}},{"name":"agent_id","in":"query","description":"Filter batch calls to a single agent.","required":false,"schema":{"description":"Filter batch calls to a single agent.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","batch_calls"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/{batch_id}":{"get":{"operationId":"get_batch_call","summary":"Get A Batch Call By Id.","description":"Get detailed information about a batch call including all recipients.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","batch_calls"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_batch_call","summary":"Delete A Batch Call.","description":"Permanently delete a batch call and all recipient records. Conversations remain in history.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","batch_calls"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/{batch_id}/cancel":{"post":{"operationId":"cancel_batch_call","summary":"Cancel A Batch Call.","description":"Cancel a running batch call and set all recipients to cancelled status.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","batch_calls"],"x-fern-sdk-method-name":"cancel","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/{batch_id}/retry":{"post":{"operationId":"retry_batch_call","summary":"Retry A Batch Call.","description":"Retry a batch call, calling failed and no-response recipients again.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","batch_calls"],"x-fern-sdk-method-name":"retry","x-fern-audiences":["convai"]}},"/v1/convai/sip-trunk/outbound-call":{"post":{"operationId":"handle_sip_trunk_outbound_call","summary":"Handle An Outbound Call Via Sip Trunk","description":"Handle an outbound call via SIP trunk","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Handle_an_outbound_call_via_SIP_trunk_v1_convai_sip_trunk_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","sip_trunk"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers":{"post":{"operationId":"create_mcp_server_route","summary":"Create Mcp Server","description":"Create a new MCP server configuration in the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Configuration for an MCP Server.","$ref":"#/components/schemas/MCPServerRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"list_mcp_servers_route","summary":"List Mcp Servers","description":"Retrieve all MCP server configurations available in the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}":{"get":{"operationId":"get_mcp_route","summary":"Get Mcp Server","description":"Retrieve a specific MCP server configuration from the workspace.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_mcp_server_route","summary":"Delete Mcp Server","description":"Delete a specific MCP server configuration from the workspace.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]},"patch":{"operationId":"update_mcp_server_config_route","summary":"Update Mcp Server Configuration","description":"Update the configuration settings for an MCP server.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Configuration updates for an MCP Server.","$ref":"#/components/schemas/MCPServerConfigUpdateRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tools":{"get":{"operationId":"list_mcp_server_tools_route","summary":"List Mcp Server Tools","description":"Retrieve all tools available for a specific MCP server configuration.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","tools"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/approval-policy":{"patch":{"operationId":"update_mcp_server_approval_policy_route","summary":"Update Mcp Server Approval Policy","description":"Update the approval policy configuration for an MCP server. DEPRECATED: Use PATCH /mcp-servers/{id} endpoint instead.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Approval policy update for an MCP Server.","$ref":"#/components/schemas/MCPApprovalPolicyUpdateRequestModel"}}}},"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,"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","approval_policy"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-approvals":{"post":{"operationId":"add_mcp_server_tool_approval_route","summary":"Create Mcp Server Tool Approval","description":"Add approval for a specific MCP tool when using per-tool approval mode.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tool approval details to add for an MCP Server.","$ref":"#/components/schemas/MCPToolAddApprovalRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","tool_approvals"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-approvals/{tool_name}":{"delete":{"operationId":"remove_mcp_server_tool_approval_route","summary":"Delete Mcp Server Tool Approval","description":"Remove approval for a specific MCP tool when using per-tool approval mode.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to remove approval for.","required":true,"schema":{"description":"Name of the MCP tool to remove approval for.","type":"string","title":"Tool Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","tool_approvals"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-configs":{"post":{"operationId":"add_mcp_tool_config_override_route","summary":"Create Mcp Tool Configuration Override","description":"Create configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tool configuration override details to create.","$ref":"#/components/schemas/MCPToolConfigOverrideCreateRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPServerResponseModel"}}}},"409":{"description":"Tool config override already exists"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-configs/{tool_name}":{"get":{"operationId":"get_mcp_tool_config_override_route","summary":"Get Mcp Tool Configuration Override","description":"Retrieve configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to retrieve config overrides for.","required":true,"schema":{"description":"Name of the MCP tool to retrieve config overrides for.","type":"string","title":"Tool Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPToolConfigOverride-Output"}}}},"404":{"description":"Tool config override not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_mcp_tool_config_override_route","summary":"Update Mcp Tool Configuration Override","description":"Update configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to update config overrides for.","required":true,"schema":{"description":"Name of the MCP tool to update config overrides for.","type":"string","title":"Tool Name"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tool configuration override details to update.","$ref":"#/components/schemas/MCPToolConfigOverrideUpdateRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPServerResponseModel"}}}},"404":{"description":"Tool config override not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"remove_mcp_tool_config_override_route","summary":"Delete Mcp Tool Configuration Override","description":"Remove configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to remove config overrides for.","required":true,"schema":{"description":"Name of the MCP tool to remove config overrides for.","type":"string","title":"Tool Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp-accounts/{phone_number_id}":{"get":{"operationId":"get_whatsapp_account","summary":"Get Whatsapp Account","description":"Get a WhatsApp account","parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string","title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","whatsapp_accounts"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_whatsapp_account","summary":"Update Whatsapp Account","description":"Update a WhatsApp account","parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string","title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWhatsAppAccountRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","whatsapp_accounts"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_whatsapp_account","summary":"Delete Whatsapp Account","description":"Delete a WhatsApp account","parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string","title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","whatsapp_accounts"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp-accounts":{"get":{"operationId":"list_whatsapp_accounts","summary":"List Whatsapp Accounts","description":"List all WhatsApp accounts","parameters":[{"name":"agent_id","in":"query","description":"Filter by assigned agent ID","required":false,"schema":{"description":"Filter by assigned agent ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","whatsapp_accounts"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches":{"post":{"operationId":"create_branch_route","summary":"Create A New Branch","description":"Create a new branch from a given version of any branch","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_a_new_branch_v1_convai_agents__agent_id__branches_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"get_branches_route","summary":"List Agent Branches","description":"Returns a list of branches an agent has","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"include_archived","in":"query","description":"Whether archived branches should be included","required":false,"schema":{"description":"Whether archived branches should be included","type":"boolean","default":false,"title":"Include Archived"}},{"name":"limit","in":"query","description":"How many results at most should be returned","required":false,"schema":{"description":"How many results at most should be returned","type":"integer","default":100,"exclusiveMinimum":1,"maximum":100,"title":"Limit"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_AgentBranchSummary_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{branch_id}":{"get":{"operationId":"get_branch_route","summary":"Get Agent Branch","description":"Get information about a single agent branch","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the branch.","required":true,"schema":{"description":"Unique identifier for the branch.","type":"string","examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_branch_route","summary":"Update Agent Branch","description":"Update agent branch properties such as archiving status and protection level","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the branch.","required":true,"schema":{"description":"Unique identifier for the branch.","type":"string","examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_agent_branch_v1_convai_agents__agent_id__branches__branch_id__patch"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/versions/{version_id}":{"get":{"operationId":"get_version_metadata_route","summary":"Get Agent Version Metadata","description":"Get metadata for a specific agent version","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"version_id","in":"path","description":"Unique identifier for the version.","required":true,"schema":{"description":"Unique identifier for the version.","type":"string","examples":["agtvrsn_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Version Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","versions"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{source_branch_id}/merge-preview":{"get":{"operationId":"merge_preview_route","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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"source_branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Source Branch Id"}},{"name":"target_branch_id","in":"query","description":"The ID of the target branch to merge into.","required":true,"schema":{"description":"The ID of the target branch to merge into.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Target Branch Id"}},{"name":"force","in":"query","description":"When true, source branch changes always win conflicts regardless of timestamps","required":false,"schema":{"description":"When true, source branch changes always win conflicts regardless of timestamps","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"preview_merge","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{source_branch_id}/merge":{"post":{"operationId":"merge_branch_into_target","summary":"Merge A Branch Into A Target Branch","description":"Merge a branch into a target branch","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"source_branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Source Branch Id"}},{"name":"target_branch_id","in":"query","description":"The ID of the target branch to merge into.","required":true,"schema":{"description":"The ID of the target branch to merge into.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Target Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Merge_a_branch_into_a_target_branch_v1_convai_agents__agent_id__branches__source_branch_id__merge_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"merge","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/rebase-preview":{"get":{"operationId":"rebase_preview_route","summary":"Preview Rebased Configuration","description":"Returns the result of rebasing the branch onto main without performing the rebase. Useful for showing an accurate diff before confirming.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"preview_rebase","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/rebase":{"post":{"operationId":"rebase_branch_onto_main","summary":"Rebase A Branch Onto Main","description":"Rebase a branch onto the latest main branch, incorporating main's changes while preserving the branch's own changes.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","branches"],"x-fern-sdk-method-name":"rebase","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/deployments":{"post":{"operationId":"create_agent_deployment_route","summary":"Create Or Update Deployments","description":"Create a new deployment for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_or_update_deployments_v1_convai_agents__agent_id__deployments_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","deployments"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/drafts":{"post":{"operationId":"create_agent_draft_route","summary":"Create Agent Draft","description":"Create a new draft for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"The ID of the agent branch to use","required":true,"schema":{"description":"The ID of the agent branch to use","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_agent_draft_v1_convai_agents__agent_id__drafts_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","drafts"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_agent_draft_route","summary":"Delete Agent Draft","description":"Delete a draft for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"The ID of the agent branch to use","required":true,"schema":{"description":"The ID of the agent branch to use","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["conversational_ai","agents","drafts"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/speech-engine":{"get":{"operationId":"list_speech_engines","summary":"List Speech Engines","description":"Returns a paginated list of Speech Engine resources.","parameters":[{"name":"page_size","in":"query","description":"How many Speech Engines to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Speech Engines to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"title":"Page Size"}},{"name":"search","in":"query","description":"Search term to filter Speech Engines by name","required":false,"schema":{"description":"Search term to filter Speech Engines by name","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/AgentSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpeechEnginesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"list"},"post":{"operationId":"create_speech_engine","summary":"Create Speech Engine","description":"Create a new Speech Engine resource","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpeechEngineRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechEngineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"create"}},"/v1/speech-engine/{speech_engine_id}":{"get":{"operationId":"get_speech_engine","summary":"Get Speech Engine","description":"Retrieve a Speech Engine resource","parameters":[{"name":"speech_engine_id","in":"path","description":"The speech engine ID (accepts seng_ or agent_ prefix)","required":true,"schema":{"description":"The speech engine ID (accepts seng_ or agent_ prefix)","type":"string","examples":["seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Speech Engine Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechEngineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"get"},"patch":{"operationId":"update_speech_engine","summary":"Update Speech Engine","description":"Update a Speech Engine resource (partial update)","parameters":[{"name":"speech_engine_id","in":"path","description":"The speech engine ID (accepts seng_ or agent_ prefix)","required":true,"schema":{"description":"The speech engine ID (accepts seng_ or agent_ prefix)","type":"string","examples":["seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Speech Engine Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpeechEngineRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechEngineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_speech_engine","summary":"Delete Speech Engine","description":"Delete a Speech Engine resource","parameters":[{"name":"speech_engine_id","in":"path","description":"The speech engine ID (accepts seng_ or agent_ prefix)","required":true,"schema":{"description":"The speech engine ID (accepts seng_ or agent_ prefix)","type":"string","examples":["seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Speech Engine Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"delete"}},"/v1/convai/conversations/{conversation_id}/analysis/run":{"post":{"operationId":"run_conversation_analysis","summary":"Run Conversation Analysis","description":"Run the analysis for a conversation using the agent's current evaluation criteria and data collection settings.","parameters":[{"name":"conversation_id","in":"path","description":"ID of the conversation","required":true,"schema":{"description":"ID of the conversation","type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Workspace Analytics"],"x-fern-sdk-group-name":["conversational_ai","conversations","analysis"],"x-fern-sdk-method-name":"run","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/analysis/evaluations/run":{"post":{"operationId":"run_conversation_evaluations","summary":"Run Conversation Evaluation","description":"Rerun a specific evaluation for a conversation.","parameters":[{"name":"conversation_id","in":"path","description":"ID of the conversation","required":true,"schema":{"description":"ID of the conversation","type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunConversationEvaluationsRequest"}}}},"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"}}}}},"tags":["Agents Workspace Analytics"],"x-fern-sdk-group-name":["conversational_ai","conversations","analysis"],"x-fern-sdk-method-name":"runEvaluation","x-fern-audiences":["convai"]}},"/v1/convai/environment-variables":{"get":{"operationId":"list_environment_variables","summary":"List Environment Variables","description":"List all environment variables for the workspace with optional filtering","parameters":[{"name":"cursor","in":"query","description":"Pagination cursor from previous response","required":false,"schema":{"description":"Pagination cursor from previous response","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"Number of items to return (1-100)","required":false,"schema":{"description":"Number of items to return (1-100)","type":"integer","default":100,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"label","in":"query","description":"Filter by exact label match","required":false,"schema":{"description":"Filter by exact label match","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},{"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":{"description":"Filter to only return variables that have this environment. When specified, the values dict in the response will only contain this environment.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"type","in":"query","description":"Filter by variable type","required":false,"schema":{"description":"Filter by variable type","anyOf":[{"enum":["string","secret","auth_connection"],"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariablesListResponse"}}}},"400":{"description":"Invalid environment filter"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]},"post":{"operationId":"create_environment_variable","summary":"Create Environment Variable","description":"Create a new environment variable for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"string":"#/components/schemas/CreateStringEnvironmentVariableRequest","secret":"#/components/schemas/CreateSecretEnvironmentVariableRequest","auth_connection":"#/components/schemas/CreateAuthConnectionEnvironmentVariableRequest"}},"oneOf":[{"$ref":"#/components/schemas/CreateStringEnvironmentVariableRequest"},{"$ref":"#/components/schemas/CreateSecretEnvironmentVariableRequest"},{"$ref":"#/components/schemas/CreateAuthConnectionEnvironmentVariableRequest"}],"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"400":{"description":"Invalid parameters"},"409":{"description":"Environment variable with this label already exists"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/environment-variables/{env_var_id}":{"get":{"operationId":"get_environment_variable","summary":"Get Environment Variable","description":"Get a specific environment variable by ID","parameters":[{"name":"env_var_id","in":"path","required":true,"schema":{"type":"string","title":"Env Var Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"404":{"description":"Environment variable not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_environment_variable","summary":"Update Environment Variable","description":"Replace an environment variable's values. Use null to remove an environment (except production).","parameters":[{"name":"env_var_id","in":"path","required":true,"schema":{"type":"string","title":"Env Var Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentVariableRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"400":{"description":"Invalid parameters or type mismatch"},"404":{"description":"Environment variable not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/music/plan":{"post":{"operationId":"compose_plan","summary":"Generate Composition Plan","description":"Create a composition plan for music generation. Usage of this endpoint does not cost any credits but is subject to rate limiting depending on your tier.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Generate_composition_plan_v1_music_plan_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}],"title":"Response Generate Composition Plan V1 Music Plan Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":["music","composition_plan"],"x-fern-sdk-method-name":"create"}},"/v1/music":{"post":{"operationId":"generate","summary":"Compose Music","description":"Compose a song from a prompt or a composition plan.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Compose_music_v1_music_post"}}}},"responses":{"200":{"description":"The generated audio file in the format specified","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"audio/*":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"compose"}},"/v1/music/detailed":{"post":{"operationId":"compose_detailed","summary":"Compose Music With A Detailed Response","description":"Compose a song from a prompt or a composition plan.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Compose_Music_with_a_detailed_response_v1_music_detailed_post"}}}},"responses":{"200":{"description":"Multipart/mixed response with JSON metadata and binary audio file","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"multipart/mixed":{"schema":{"description":"Raw multipart/mixed response data that clients must parse. Contains two parts separated by boundary: 1) application/json part with composition_plan and song_metadata 2) audio/* part with binary audio data and Content-Disposition header","type":"object","format":"binary","properties":{"composition_plan":{"type":"object"},"song_metadata":{"type":"object"},"audio":{"type":"string","format":"binary"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"compose_detailed","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"prompt":"A prompt for music generation","music_length_ms":10000},"response":{"body":{"composition_plan":{"positive_global_styles":["pop","rock","jazz"],"negative_global_styles":["metal","hip-hop","country"],"sections":[{"section_name":"Verse 1","positive_local_styles":["pop","rock","jazz"],"negative_local_styles":["metal","hip-hop","country"],"duration_ms":10000,"lines":["Verse 1 lyrics"]}]},"song_metadata":{"title":"My Song","description":"My Song Description","genres":["pop","rock","jazz"],"languages":["en","fr"],"is_explicit":false},"audio":"[binary audio data]"}}}]}},"/v1/music/detailed/stream":{"post":{"operationId":"compose_detailed_stream","summary":"Stream Composed Music With A Detailed Response","description":"Stream a song and its detailed metadata using Server-Sent Events (SSE).","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_composed_music_with_a_detailed_response_v1_music_detailed_stream_post"}}}},"responses":{"200":{"description":"Server-Sent Events for composition plan, song metadata, audio chunks with optional word timestamps, and completion.","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"text/event-stream":{"schema":{"description":"SSE stream. Audio chunks are emitted as base64-encoded payloads with optional word timestamps in audio_chunk events.","type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"compose_detailed_stream","x-fern-streaming":true}},"/v1/music/stream":{"post":{"operationId":"stream_compose","summary":"Stream Composed Music","description":"Stream a composed song from a prompt or a composition plan.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_composed_music_v1_music_stream_post"}}}},"responses":{"200":{"description":"Streaming audio data in the format specified","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"audio/*":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/music/upload":{"post":{"operationId":"upload_song","summary":"Upload Music","description":"Upload a music file to be later used for inpainting. Price for uploading is the same as the one for song generation. All uploaded content gets inspected for copyright infringement. If copyrighted content is detected, half of the request cost is still charged.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Upload_music_v1_music_upload_post"}}}},"responses":{"200":{"description":"Successfully uploaded music file with optional composition plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"upload"}},"/v1/music/stem-separation":{"post":{"operationId":"separate_song_stems","summary":"Stem Separation","description":"Separate an audio file into individual stems. This endpoint might have high latency, depending on the length of the audio file.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Stem_separation_v1_music_stem_separation_post"}}}},"responses":{"200":{"description":"ZIP archive containing separated audio stems. Each stem is provided as a separate audio file in the requested output format.","headers":{"Content-Disposition":{"description":"Attachment header with filename","schema":{"type":"string","example":"attachment; filename=stems.zip"}}},"content":{"application/zip":{"schema":{"type":"string","format":"binary"},"example":"Binary ZIP file containing files like: vocals.mp3, drums.mp3, bass.mp3, guitar.mp3, piano.mp3, other.mp3"}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"separate_stems"}},"/v1/music/finetunes":{"get":{"operationId":"get_finetunes","summary":"Get Music Finetunes","description":"List music finetunes accessible to you (your own, workspace-shared, and ElevenLabs-curated), with optional filtering, sorting, and cursor pagination.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching the next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching the next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many finetunes to return. Max 100, default 50.","required":false,"schema":{"description":"How many finetunes to return. Max 100, default 50.","type":"integer","default":50,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"visibility","in":"query","description":"Filter by visibility. 'private' returns private finetunes; 'workspace' returns workspace-shared finetunes; 'public' returns public finetunes, which are currently ElevenLabs curated finetunes. Omit to return all accessible finetunes.","required":false,"schema":{"description":"Filter by visibility. 'private' returns private finetunes; 'workspace' returns workspace-shared finetunes; 'public' returns public finetunes, which are currently ElevenLabs curated finetunes. Omit to return all accessible finetunes.","anyOf":[{"$ref":"#/components/schemas/FinetuneVisibility"},{"type":"null"}],"title":"Visibility"}},{"name":"created_by","in":"query","description":"Filter by creator. 'self' returns finetunes you created; 'workspace' returns finetunes created by workspace teammates; 'elevenlabs' returns ElevenLabs curated finetunes. Omit to return finetunes from all creators.","required":false,"schema":{"description":"Filter by creator. 'self' returns finetunes you created; 'workspace' returns finetunes created by workspace teammates; 'elevenlabs' returns ElevenLabs curated finetunes. Omit to return finetunes from all creators.","anyOf":[{"$ref":"#/components/schemas/FinetuneCreatedBy"},{"type":"null"}],"title":"Created By"}},{"name":"sort","in":"query","description":"Sort by field (created_at or name)","required":false,"schema":{"description":"Sort by field (created_at or name)","type":"string","default":"created_at","enum":["created_at","name"],"title":"Sort"}},{"name":"sort_direction","in":"query","description":"Sort direction (asc or desc)","required":false,"schema":{"description":"Sort direction (asc or desc)","type":"string","default":"desc","enum":["asc","desc"],"title":"Sort Direction"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetunePageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"create_finetune","summary":"Create Music Finetune","description":"Create a new music finetune","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_Music_Finetune_v1_music_finetunes_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"create"}},"/v1/music/finetunes/{finetune_id}":{"get":{"operationId":"get_finetune","summary":"Get Music Finetune","description":"Get a music finetune.","parameters":[{"name":"finetune_id","in":"path","required":true,"schema":{"type":"string","title":"Finetune Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"get"},"patch":{"operationId":"update_finetune","summary":"Update Music Finetune","description":"Update a music finetune.","parameters":[{"name":"finetune_id","in":"path","required":true,"schema":{"type":"string","title":"Finetune Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMusicFinetuneRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_finetune","summary":"Delete Music Finetune","description":"Delete a music finetune","parameters":[{"name":"finetune_id","in":"path","required":true,"schema":{"type":"string","title":"Finetune Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"delete"}},"/v1/productions/orders":{"post":{"operationId":"public_create_order","summary":"Create Order","description":"Creates a new Productions order in the workspace. The order starts in the open state and can be configured with items before submission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CreateOrderRequest"},{"type":"null"}],"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"public_list_orders","summary":"List Orders","description":"Lists Productions orders in the workspace. Supports filtering by status and date range, with pagination.","parameters":[{"name":"page_size","in":"query","description":"Maximum number of orders to return per page.","required":false,"schema":{"description":"Maximum number of orders to return per page.","type":"integer","default":20,"maximum":100,"title":"Page Size"}},{"name":"offset","in":"query","description":"Number of orders to skip for pagination.","required":false,"schema":{"description":"Number of orders to skip for pagination.","type":"integer","default":0,"minimum":0,"title":"Offset"}},{"name":"status","in":"query","description":"Filter orders by one or more statuses.","required":false,"schema":{"description":"Filter orders by one or more statuses.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/OrderRequestState"}},{"type":"null"}],"title":"Status"}},{"name":"start_date","in":"query","description":"Filter orders created on or after this date.","required":false,"schema":{"description":"Filter orders created on or after this date.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","description":"Filter orders created on or before this date.","required":false,"schema":{"description":"Filter orders created on or before this date.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListOrdersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"list"}},"/v1/productions/orders/{order_id}":{"get":{"operationId":"public_get_order","summary":"Get Order","description":"Retrieves full details for a Productions order.\n\nQuote and pricing information may not be available immediately; if you wish to see the quote before submission, you may need to poll the order details until it is ready.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"get"},"patch":{"operationId":"public_update_order","summary":"Update Order","description":"Updates an open order.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_order_v1_productions_orders__order_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"update"}},"/v1/productions/orders/{order_id}/media":{"post":{"operationId":"public_register_media","summary":"Register Media","description":"Registers a media file with an order, either by uploading it directly or by providing a URL to fetch it from. Exactly one of `media` or `media_url` must be provided. The registered media can then be referenced when adding order items.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order to which this media will be attached.","required":true,"schema":{"description":"The ID of the order to which this media will be attached.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Register_media_v1_productions_orders__order_id__media_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterMediaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","media"],"x-fern-sdk-method-name":"register"}},"/v1/productions/orders/{order_id}/media/{media_id}":{"get":{"operationId":"public_get_media_info","summary":"Get Media Info","description":"Retrieves metadata and a time-limited download URL for a previously uploaded media file.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"media_id","in":"path","description":"The ID of the media file.","required":true,"schema":{"description":"The ID of the media file.","$ref":"#/components/schemas/MediaId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderMediaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","media"],"x-fern-sdk-method-name":"get"}},"/v1/productions/orders/{order_id}/items":{"post":{"operationId":"public_upsert_order_item","summary":"Upsert Order Item","description":"Adds or updates an order item on an open order. Returns the item ID and the quoted price.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Upsert_order_item_v1_productions_orders__order_id__items_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertOrderItemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","items"],"x-fern-sdk-method-name":"upsert"}},"/v1/productions/orders/{order_id}/items/{item_id}":{"delete":{"operationId":"public_remove_order_item","summary":"Remove Order Item","description":"Removes an order item from an open order.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"item_id","in":"path","description":"The ID of the order item.","required":true,"schema":{"description":"The ID of the order item.","$ref":"#/components/schemas/ItemId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveOrderItemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","items"],"x-fern-sdk-method-name":"remove"}},"/v1/productions/orders/{order_id}/submit":{"post":{"operationId":"public_submit_order","summary":"Submit Order","description":"Submits an open order for processing. The order must have at least one item. Once submitted, items can no longer be modified.\n\nUpon submission, the workspace will be charged for the order. The quote is based on information extracted from the uploaded media, such as its duration. The quote may not be available immediately; if you wish to see the quote before submission, you may need to poll the order details until the quote is ready.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitOrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"submit"}},"/v1/productions/orders/{order_id}/deliverables":{"get":{"operationId":"public_get_order_deliverables","summary":"Get Order Deliverables","description":"Retrieves the delivered files for a completed order. Returns an empty list if the order is not yet completed.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderDeliverablesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","deliverables"],"x-fern-sdk-method-name":"list"}},"/v1/productions/orders/languages/{order_item_kind}":{"get":{"operationId":"public_get_available_languages","summary":"Get Available Languages","description":"Returns the available languages for a given order item kind.","parameters":[{"name":"order_item_kind","in":"path","description":"The kind of order item.","required":true,"schema":{"description":"The kind of order item.","$ref":"#/components/schemas/OrderItemKind"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","languages"],"x-fern-sdk-method-name":"list"}},"/v1/voices/pvc":{"post":{"operationId":"create_pvc_voice","summary":"Create PVC voice","description":"Creates a new PVC voice with metadata but no samples","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_PVC_voice_v1_voices_pvc_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc"],"x-fern-sdk-method-name":"create"}},"/v1/voices/pvc/{voice_id}":{"post":{"operationId":"edit_pvc_voice","summary":"Edit Pvc Voice","description":"Edit PVC voice metadata","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Edit_PVC_voice_v1_voices_pvc__voice_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc"],"x-fern-sdk-method-name":"update"}},"/v1/voices/pvc/{voice_id}/samples":{"post":{"operationId":"add_pvc_voice_samples","summary":"Add Samples To Pvc Voice","description":"Add audio samples to a PVC voice","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_samples_to_PVC_voice_v1_voices_pvc__voice_id__samples_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SampleResponseModel"},"title":"Response Add Samples To Pvc Voice V1 Voices Pvc Voice Id Samples Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples"],"x-fern-sdk-method-name":"create"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}":{"post":{"operationId":"edit_pvc_voice_sample","summary":"Update Pvc Voice Sample","description":"Update a PVC voice sample - apply noise removal, select speaker, change trim times or file name.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_PVC_voice_sample_v1_voices_pvc__voice_id__samples__sample_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_pvc_voice_sample","summary":"Delete Pvc Voice Sample","description":"Delete a sample from a PVC voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceSampleResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples"],"x-fern-sdk-method-name":"delete"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/audio":{"get":{"operationId":"get_pvc_sample_audio","summary":"Retrieve Voice Sample Audio","description":"Retrieve the first 30 seconds of voice sample audio with or without noise removal.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"remove_background_noise","in":"query","description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","required":false,"schema":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"embed":true,"examples":[true],"title":"Remove Background Noise"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSamplePreviewResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","audio"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/waveform":{"get":{"operationId":"get_pvc_sample_visual_waveform","summary":"Retrieve Voice Sample Visual Waveform","description":"Retrieve the visual waveform of a voice sample.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSampleVisualWaveformResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","waveform"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/speakers":{"get":{"operationId":"get_pvc_sample_speakers","summary":"Retrieve Speaker Separation Status","description":"Retrieve the status of the speaker separation process and the list of detected speakers if complete.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerSeparationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","speakers"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/separate-speakers":{"post":{"operationId":"start_speaker_separation","summary":"Start Speaker Separation","description":"Start speaker separation process for a sample","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSpeakerSeparationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","speakers"],"x-fern-sdk-method-name":"separate"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/speakers/{speaker_id}/audio":{"get":{"operationId":"get_speaker_audio","summary":"Retrieve Separated Speaker Audio","description":"Retrieve the separated audio for a specific speaker.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"speaker_id","in":"path","description":"Speaker ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id}/samples/{sample_id}/speakers to list all the available speakers for a sample.","required":true,"schema":{"description":"Speaker ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id}/samples/{sample_id}/speakers to list all the available speakers for a sample.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerAudioResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","speakers","audio"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/captcha":{"get":{"operationId":"get_pvc_voice_captcha","summary":"Get Pvc Voice Captcha","description":"Get captcha for PVC voice verification.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","verification","captcha"],"x-fern-sdk-method-name":"get"},"post":{"operationId":"verify_pvc_voice_captcha","summary":"Verify Pvc Voice Captcha","description":"Submit captcha verification for PVC voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Verify_PVC_voice_captcha_v1_voices_pvc__voice_id__captcha_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyPVCVoiceCaptchaResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","verification","captcha"],"x-fern-sdk-method-name":"verify"}},"/v1/voices/pvc/{voice_id}/train":{"post":{"operationId":"run_pvc_voice_training","summary":"Run Pvc Training","description":"Start PVC training process for a voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Run_PVC_training_v1_voices_pvc__voice_id__train_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartPVCVoiceTrainingResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc"],"x-fern-sdk-method-name":"train"}},"/v1/voices/pvc/{voice_id}/verification":{"post":{"operationId":"request_pvc_manual_verification","summary":"Request Manual Verification","description":"Request manual verification for a PVC voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Request_manual_verification_v1_voices_pvc__voice_id__verification_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestPVCManualVerificationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","verification"],"x-fern-sdk-method-name":"request"}},"/v1/workspace/analytics/query/usage-by-product-over-time":{"post":{"operationId":"usage_by_product_over_time","summary":"Get Workspace Usage","description":"Returns credit usage broken down by product type over time. The response is a tabular structure with columns, column_types, column_units, and rows.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Get_Workspace_Usage_v1_workspace_analytics_query_usage_by_product_over_time_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceAnalyticsQueryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["access:all"],"x-fern-sdk-group-name":["workspace","usage"],"x-fern-sdk-method-name":"get_usage_by_product_over_time"}},"/v1/workspace/analytics/requests":{"post":{"operationId":"requests_list","summary":"List Api Requests","description":"Returns a list of API requests. Supports filtering by time range, column filters, and search terms. At least one of start_time or end_time must be provided. An optional sort parameter controls timestamp ordering. Results are ordered by timestamp. Descending if end_time is used, ascending if start_time is used. The response is a tabular structure with columns, column_types, column_units, and rows.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_List_API_requests_v1_workspace_analytics_requests_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceAnalyticsQueryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["access:all"],"x-fern-sdk-group-name":["workspace","analytics","requests"],"x-fern-sdk-method-name":"get"}}},"components":{"schemas":{"ASRConversationalConfig":{"type":"object","properties":{"quality":{"description":"The quality of the transcription","default":"high","$ref":"#/components/schemas/ASRQuality"},"provider":{"description":"The provider of the transcription service","default":"scribe_realtime","$ref":"#/components/schemas/ASRProvider"},"user_input_audio_format":{"description":"The format of the audio to be transcribed","default":"pcm_16000","$ref":"#/components/schemas/ASRInputFormat"},"keywords":{"description":"Keywords to boost prediction probability for","type":"array","items":{"type":"string"},"title":"Keywords","x-convai-client-override":true,"x-convai-soft-override-disallowed":true}},"example":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"title":"ASRConversationalConfig"},"ASRConversationalConfigOverride":{"type":"object","properties":{"keywords":{"description":"Keywords to boost prediction probability for","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords","x-convai-client-override":true,"x-convai-soft-override-disallowed":true}},"example":{"keywords":["hello","world"]},"title":"ASRConversationalConfigOverride"},"ASRConversationalConfigOverrideConfig":{"type":"object","properties":{"keywords":{"description":"Whether to allow overriding the keywords field.","type":"boolean","default":false,"title":"Keywords"}},"title":"ASRConversationalConfigOverrideConfig"},"ASRConversationalConfigWorkflowOverride":{"type":"object","properties":{"quality":{"description":"The quality of the transcription","anyOf":[{"$ref":"#/components/schemas/ASRQuality"},{"type":"null"}]},"provider":{"description":"The provider of the transcription service","anyOf":[{"$ref":"#/components/schemas/ASRProvider"},{"type":"null"}]},"user_input_audio_format":{"description":"The format of the audio to be transcribed","anyOf":[{"$ref":"#/components/schemas/ASRInputFormat"},{"type":"null"}]},"keywords":{"description":"Keywords to boost prediction probability for","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords","x-convai-client-override":true,"x-convai-soft-override-disallowed":true}},"example":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"title":"ASRConversationalConfigWorkflowOverride"},"ASRInputFormat":{"type":"string","default":"pcm_16000","enum":["pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_44100","pcm_48000","ulaw_8000"],"title":"ASRInputFormat"},"ASRProvider":{"type":"string","default":"scribe_realtime","enum":["elevenlabs","scribe_realtime"],"title":"ASRProvider","x-fern-enum":{"elevenlabs":{"description":"Deprecated: Use scribe_realtime instead.","deprecated":true}}},"ASRQuality":{"type":"string","default":"high","enum":["high"],"title":"ASRQuality"},"ASTAdditionOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"add_operator","const":"add_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTAdditionOperatorNode"},"ASTAdditionOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"add_operator","const":"add_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTAdditionOperatorNode"},"ASTAndOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"and_operator","const":"and_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Input"},"minItems":2,"title":"Children"}},"required":["children"],"title":"ASTAndOperatorNode"},"ASTAndOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"and_operator","const":"and_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Output"},"minItems":2,"title":"Children"}},"required":["type","children"],"title":"ASTAndOperatorNode"},"ASTBooleanNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"boolean_literal","const":"boolean_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"boolean","title":"Value"}},"required":["value"],"title":"ASTBooleanNode"},"ASTBooleanNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"boolean_literal","const":"boolean_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"boolean","title":"Value"}},"required":["type","value"],"title":"ASTBooleanNode"},"ASTConditionalOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"conditional_operator","const":"conditional_operator","title":"Type"},"condition":{"description":"Condition deciding which expression should be selected.","$ref":"#/components/schemas/ASTNode-Input"},"trueExpression":{"description":"Expression selected if the condition is true.","$ref":"#/components/schemas/ASTNode-Input"},"falseExpression":{"description":"Expression selected if the condition is false.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["condition","trueExpression","falseExpression"],"title":"ASTConditionalOperatorNode"},"ASTConditionalOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"conditional_operator","const":"conditional_operator","title":"Type"},"condition":{"description":"Condition deciding which expression should be selected.","$ref":"#/components/schemas/ASTNode-Output"},"trueExpression":{"description":"Expression selected if the condition is true.","$ref":"#/components/schemas/ASTNode-Output"},"falseExpression":{"description":"Expression selected if the condition is false.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","condition","trueExpression","falseExpression"],"title":"ASTConditionalOperatorNode"},"ASTDivisionOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"div_operator","const":"div_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTDivisionOperatorNode"},"ASTDivisionOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"div_operator","const":"div_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTDivisionOperatorNode"},"ASTDynamicVariableNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"dynamic_variable","const":"dynamic_variable","title":"Type"},"name":{"description":"The name of the dynamic variable.","type":"string","title":"Name"}},"required":["name"],"title":"ASTDynamicVariableNode"},"ASTDynamicVariableNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"dynamic_variable","const":"dynamic_variable","title":"Type"},"name":{"description":"The name of the dynamic variable.","type":"string","title":"Name"}},"required":["type","name"],"title":"ASTDynamicVariableNode"},"ASTEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"eq_operator","const":"eq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTEqualsOperatorNode"},"ASTEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"eq_operator","const":"eq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTEqualsOperatorNode"},"ASTGreaterThanOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"gt_operator","const":"gt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTGreaterThanOperatorNode"},"ASTGreaterThanOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"gt_operator","const":"gt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTGreaterThanOperatorNode"},"ASTGreaterThanOrEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"gte_operator","const":"gte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTGreaterThanOrEqualsOperatorNode"},"ASTGreaterThanOrEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"gte_operator","const":"gte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTGreaterThanOrEqualsOperatorNode"},"ASTLLMNode-Input":{"oneOf":[{"properties":{"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"value_schema":{"description":"JSON schema describing the value that the LLM should extract.","$ref":"#/components/schemas/LLMLiteralJsonSchemaProperty","examples":[{"description":"User's last message contains a question about our pricing.","type":"boolean"},{"description":"User provided their email address.","type":"boolean"}]}},"type":"object","required":["value_schema"],"title":"ASTLLMNode"},{"properties":{"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"prompt":{"description":"The prompt to evaluate to a boolean value. Deprecated. Use a boolean schema instead.","type":"string","deprecated":true}},"type":"object","required":["prompt"],"title":"ASTLLMNode"}]},"ASTLLMNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"value_schema":{"description":"JSON schema describing the value that the LLM should extract.","$ref":"#/components/schemas/LLMLiteralJsonSchemaProperty","examples":[{"description":"User's last message contains a question about our pricing.","type":"boolean"},{"description":"User provided their email address.","type":"boolean"}]},"prompt":{"description":"The prompt to evaluate to a boolean value. Deprecated. Use a boolean schema instead.","type":"string","deprecated":true}},"required":["type","value_schema","prompt"],"title":"ASTLLMNode"},"ASTLessThanOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"lt_operator","const":"lt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTLessThanOperatorNode"},"ASTLessThanOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"lt_operator","const":"lt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTLessThanOperatorNode"},"ASTLessThanOrEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"lte_operator","const":"lte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTLessThanOrEqualsOperatorNode"},"ASTLessThanOrEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"lte_operator","const":"lte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTLessThanOrEqualsOperatorNode"},"ASTMultiplicationOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"mul_operator","const":"mul_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTMultiplicationOperatorNode"},"ASTMultiplicationOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"mul_operator","const":"mul_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTMultiplicationOperatorNode"},"ASTNode-Input":{"discriminator":{"propertyName":"type","mapping":{"add_operator":"#/components/schemas/ASTAdditionOperatorNode-Input","and_operator":"#/components/schemas/ASTAndOperatorNode-Input","boolean_literal":"#/components/schemas/ASTBooleanNode-Input","conditional_operator":"#/components/schemas/ASTConditionalOperatorNode-Input","div_operator":"#/components/schemas/ASTDivisionOperatorNode-Input","dynamic_variable":"#/components/schemas/ASTDynamicVariableNode-Input","eq_operator":"#/components/schemas/ASTEqualsOperatorNode-Input","gt_operator":"#/components/schemas/ASTGreaterThanOperatorNode-Input","gte_operator":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Input","llm":"#/components/schemas/ASTLLMNode-Input","lt_operator":"#/components/schemas/ASTLessThanOperatorNode-Input","lte_operator":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Input","mul_operator":"#/components/schemas/ASTMultiplicationOperatorNode-Input","neq_operator":"#/components/schemas/ASTNotEqualsOperatorNode-Input","null_literal":"#/components/schemas/ASTNullNode-Input","number_literal":"#/components/schemas/ASTNumberNode-Input","or_operator":"#/components/schemas/ASTOrOperatorNode-Input","string_literal":"#/components/schemas/ASTStringNode-Input","sub_operator":"#/components/schemas/ASTSubtractionOperatorNode-Input"}},"oneOf":[{"$ref":"#/components/schemas/ASTStringNode-Input","description":"String literal."},{"$ref":"#/components/schemas/ASTNumberNode-Input","description":"Number literal."},{"$ref":"#/components/schemas/ASTBooleanNode-Input","description":"Boolean literal."},{"$ref":"#/components/schemas/ASTNullNode-Input","description":"Null literal."},{"$ref":"#/components/schemas/ASTLLMNode-Input","description":"Value extracted by an LLM according to the given schema."},{"$ref":"#/components/schemas/ASTDynamicVariableNode-Input","description":"Reference to a dynamic variable."},{"$ref":"#/components/schemas/ASTOrOperatorNode-Input","description":"Evaluates to true if any child is true."},{"$ref":"#/components/schemas/ASTAndOperatorNode-Input","description":"Evaluates to true if all children are true."},{"$ref":"#/components/schemas/ASTEqualsOperatorNode-Input","description":"Evaluates to true if the left value equals the right."},{"$ref":"#/components/schemas/ASTNotEqualsOperatorNode-Input","description":"Evaluates to true if the left value does not equal the right."},{"$ref":"#/components/schemas/ASTGreaterThanOperatorNode-Input","description":"Evaluates to true if the left value is greater than the right."},{"$ref":"#/components/schemas/ASTLessThanOperatorNode-Input","description":"Evaluates to true if the left value is less than the right."},{"$ref":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Input","description":"Evaluates to true if the left value is greater than or equal to the right."},{"$ref":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Input","description":"Evaluates to true if the left value is less than or equal to the right."},{"$ref":"#/components/schemas/ASTAdditionOperatorNode-Input","description":"Adds the left and right values."},{"$ref":"#/components/schemas/ASTSubtractionOperatorNode-Input","description":"Subtracts the right value from the left."},{"$ref":"#/components/schemas/ASTMultiplicationOperatorNode-Input","description":"Multiplies the left value times the right."},{"$ref":"#/components/schemas/ASTDivisionOperatorNode-Input","description":"Divides the left value by the right."},{"$ref":"#/components/schemas/ASTConditionalOperatorNode-Input","description":"Selects one of two expressions based on whether the given condition evaluates to true."}]},"ASTNode-Output":{"discriminator":{"propertyName":"type","mapping":{"add_operator":"#/components/schemas/ASTAdditionOperatorNode-Output","and_operator":"#/components/schemas/ASTAndOperatorNode-Output","boolean_literal":"#/components/schemas/ASTBooleanNode-Output","conditional_operator":"#/components/schemas/ASTConditionalOperatorNode-Output","div_operator":"#/components/schemas/ASTDivisionOperatorNode-Output","dynamic_variable":"#/components/schemas/ASTDynamicVariableNode-Output","eq_operator":"#/components/schemas/ASTEqualsOperatorNode-Output","gt_operator":"#/components/schemas/ASTGreaterThanOperatorNode-Output","gte_operator":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Output","llm":"#/components/schemas/ASTLLMNode-Output","lt_operator":"#/components/schemas/ASTLessThanOperatorNode-Output","lte_operator":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Output","mul_operator":"#/components/schemas/ASTMultiplicationOperatorNode-Output","neq_operator":"#/components/schemas/ASTNotEqualsOperatorNode-Output","null_literal":"#/components/schemas/ASTNullNode-Output","number_literal":"#/components/schemas/ASTNumberNode-Output","or_operator":"#/components/schemas/ASTOrOperatorNode-Output","string_literal":"#/components/schemas/ASTStringNode-Output","sub_operator":"#/components/schemas/ASTSubtractionOperatorNode-Output"}},"oneOf":[{"$ref":"#/components/schemas/ASTStringNode-Output","description":"String literal."},{"$ref":"#/components/schemas/ASTNumberNode-Output","description":"Number literal."},{"$ref":"#/components/schemas/ASTBooleanNode-Output","description":"Boolean literal."},{"$ref":"#/components/schemas/ASTNullNode-Output","description":"Null literal."},{"$ref":"#/components/schemas/ASTLLMNode-Output","description":"Value extracted by an LLM according to the given schema."},{"$ref":"#/components/schemas/ASTDynamicVariableNode-Output","description":"Reference to a dynamic variable."},{"$ref":"#/components/schemas/ASTOrOperatorNode-Output","description":"Evaluates to true if any child is true."},{"$ref":"#/components/schemas/ASTAndOperatorNode-Output","description":"Evaluates to true if all children are true."},{"$ref":"#/components/schemas/ASTEqualsOperatorNode-Output","description":"Evaluates to true if the left value equals the right."},{"$ref":"#/components/schemas/ASTNotEqualsOperatorNode-Output","description":"Evaluates to true if the left value does not equal the right."},{"$ref":"#/components/schemas/ASTGreaterThanOperatorNode-Output","description":"Evaluates to true if the left value is greater than the right."},{"$ref":"#/components/schemas/ASTLessThanOperatorNode-Output","description":"Evaluates to true if the left value is less than the right."},{"$ref":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Output","description":"Evaluates to true if the left value is greater than or equal to the right."},{"$ref":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Output","description":"Evaluates to true if the left value is less than or equal to the right."},{"$ref":"#/components/schemas/ASTAdditionOperatorNode-Output","description":"Adds the left and right values."},{"$ref":"#/components/schemas/ASTSubtractionOperatorNode-Output","description":"Subtracts the right value from the left."},{"$ref":"#/components/schemas/ASTMultiplicationOperatorNode-Output","description":"Multiplies the left value times the right."},{"$ref":"#/components/schemas/ASTDivisionOperatorNode-Output","description":"Divides the left value by the right."},{"$ref":"#/components/schemas/ASTConditionalOperatorNode-Output","description":"Selects one of two expressions based on whether the given condition evaluates to true."}]},"ASTNotEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"neq_operator","const":"neq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTNotEqualsOperatorNode"},"ASTNotEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"neq_operator","const":"neq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTNotEqualsOperatorNode"},"ASTNullNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"null_literal","const":"null_literal","title":"Type"}},"title":"ASTNullNode"},"ASTNullNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"null_literal","const":"null_literal","title":"Type"}},"required":["type"],"title":"ASTNullNode"},"ASTNumberNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"number_literal","const":"number_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"number","title":"Value"}},"required":["value"],"title":"ASTNumberNode"},"ASTNumberNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"number_literal","const":"number_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"number","title":"Value"}},"required":["type","value"],"title":"ASTNumberNode"},"ASTOrOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"or_operator","const":"or_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Input"},"minItems":2,"title":"Children"}},"required":["children"],"title":"ASTOrOperatorNode"},"ASTOrOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"or_operator","const":"or_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Output"},"minItems":2,"title":"Children"}},"required":["type","children"],"title":"ASTOrOperatorNode"},"ASTStringNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"string_literal","const":"string_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"string","title":"Value"}},"required":["value"],"title":"ASTStringNode"},"ASTStringNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"string_literal","const":"string_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"string","title":"Value"}},"required":["type","value"],"title":"ASTStringNode"},"ASTSubtractionOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"sub_operator","const":"sub_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTSubtractionOperatorNode"},"ASTSubtractionOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"sub_operator","const":"sub_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTSubtractionOperatorNode"},"AccountChangeActivityId":{"description":"OCSF Activity IDs for Account Change [3001] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/account_change","type":"integer","enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,99],"title":"AccountChangeActivityId"},"ActorModel":{"description":"OCSF Actor object - describes the entity that performed the action.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/actor","type":"object","properties":{"user":{"description":"User who performed the action","$ref":"#/components/schemas/UserModel"},"app_name":{"description":"Client application or service name","anyOf":[{"type":"string"},{"type":"null"}],"title":"App Name"},"app_uid":{"description":"Client application unique identifier","anyOf":[{"type":"string"},{"type":"null"}],"title":"App Uid"},"session":{"description":"Session information","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session"}},"additionalProperties":false,"required":["user"],"title":"ActorModel"},"AddChapterResponseModel":{"type":"object","properties":{"chapter":{"$ref":"#/components/schemas/ChapterWithContentResponseModel"}},"required":["chapter"],"title":"AddChapterResponseModel"},"AddKnowledgeBaseResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"}},"required":["id","name"],"title":"AddKnowledgeBaseResponseModel"},"AddProjectResponseModel":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectResponseModel"}},"required":["project"],"title":"AddProjectResponseModel","x-fern-type-name":"AddProjectResponseModel"},"AddPronunciationDictionaryResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the created pronunciation dictionary.","type":"string","title":"Id"},"name":{"description":"The name of the created pronunciation dictionary.","type":"string","title":"Name"},"created_by":{"description":"The user ID of the creator of the pronunciation dictionary.","type":"string","title":"Created By"},"creation_time_unix":{"description":"The creation time of the pronunciation dictionary in Unix timestamp.","type":"integer","title":"Creation Time Unix"},"version_id":{"description":"The ID of the created pronunciation dictionary version.","type":"string","title":"Version Id"},"version_rules_num":{"description":"The number of rules in the version of the pronunciation dictionary.","type":"integer","title":"Version Rules Num"},"description":{"description":"The description of the pronunciation dictionary.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"permission_on_resource":{"description":"The permission on the resource of the pronunciation dictionary.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"}},"example":{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","name":"My Dictionary","permission_on_resource":"admin","version_id":"5xM3yVvZQKV0EfqQpLrJ","version_rules_num":5},"required":["id","name","created_by","creation_time_unix","version_id","version_rules_num","permission_on_resource"],"title":"AddPronunciationDictionaryResponseModel","x-fern-type-name":"AddPronunciationDictionaryResponseModel"},"AddVoiceIVCResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the newly created voice.","type":"string","title":"Voice Id"},"requires_verification":{"description":"Whether the voice requires verification","type":"boolean","title":"Requires Verification"}},"example":{"requires_verification":false,"voice_id":"c38kUX8pkfYO2kHyqfFy"},"required":["voice_id","requires_verification"],"title":"AddVoiceIVCResponseModel"},"AddVoiceResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"}},"example":{"voice_id":"b38kUX8pkfYO2kHyqfFy"},"required":["voice_id"],"title":"AddVoiceResponseModel","x-fern-type-name":"AddVoiceResponseModel"},"AddWorkspaceGroupMemberResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace group member addition request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"AddWorkspaceGroupMemberResponseModel"},"AddWorkspaceInviteResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace invite request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"AddWorkspaceInviteResponseModel"},"AdditionalFormatResponseModel":{"type":"object","properties":{"requested_format":{"description":"The requested format.","type":"string","title":"Requested Format"},"file_extension":{"description":"The file extension of the additional format.","type":"string","title":"File Extension"},"content_type":{"description":"The content type of the additional format.","type":"string","title":"Content Type"},"is_base64_encoded":{"description":"Whether the content is base64 encoded.","type":"boolean","title":"Is Base64 Encoded"},"content":{"description":"The content of the additional format.","title":"Content","type":"string"}},"required":["requested_format","file_extension","content_type","is_base64_encoded","content"],"title":"AdditionalFormatResponseModel"},"AdditionalFormats":{"type":"array","items":{"$ref":"#/components/schemas/ExportOptions"},"maxItems":10,"title":"AdditionalFormats"},"AdhocAgentConfigOverrideForTestRequestModel":{"type":"object","properties":{"conversation_config":{"$ref":"#/components/schemas/ConversationalConfigAPIModel-Input"},"platform_settings":{"$ref":"#/components/schemas/AgentPlatformSettingsRequestModel"},"workflow":{"anyOf":[{"$ref":"#/components/schemas/AgentWorkflowRequestModel"},{"type":"null"}]}},"required":["conversation_config","platform_settings"],"title":"AdhocAgentConfigOverrideForTestRequestModel"},"AgentBranchBasicInfo":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"AgentBranchBasicInfo"},"AgentBranchResponse":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"description":{"type":"string","title":"Description"},"created_at":{"type":"integer","title":"Created At"},"last_committed_at":{"type":"integer","title":"Last Committed At"},"is_archived":{"type":"boolean","title":"Is Archived"},"protection_status":{"default":"writer_perms_required","$ref":"#/components/schemas/BranchProtectionStatus"},"access_info":{"description":"Access information for the branch","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"current_live_percentage":{"description":"Percentage of traffic live on the branch","type":"number","default":0,"title":"Current Live Percentage"},"parent_branch":{"description":"Parent branch of the branch","anyOf":[{"$ref":"#/components/schemas/AgentBranchBasicInfo"},{"type":"null"}]},"most_recent_versions":{"description":"Most recent versions on the branch","type":"array","items":{"$ref":"#/components/schemas/AgentVersionMetadata"},"title":"Most Recent Versions"}},"required":["id","name","agent_id","description","created_at","last_committed_at","is_archived"],"title":"AgentBranchResponse"},"AgentBranchSummary":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"description":{"type":"string","title":"Description"},"created_at":{"type":"integer","title":"Created At"},"last_committed_at":{"type":"integer","title":"Last Committed At"},"is_archived":{"type":"boolean","title":"Is Archived"},"protection_status":{"default":"writer_perms_required","$ref":"#/components/schemas/BranchProtectionStatus"},"access_info":{"description":"Access information for the branch","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"current_live_percentage":{"description":"Percentage of traffic live on the branch","type":"number","default":0,"title":"Current Live Percentage"},"parent_branch_id":{"description":"ID of the parent branch","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Branch Id"},"draft_exists":{"description":"Whether a draft exists for the branch","type":"boolean","default":false,"title":"Draft Exists"},"calls_7d":{"description":"Number of calls in the last 7 days","type":"integer","default":0,"title":"Calls 7D"}},"required":["id","name","agent_id","description","created_at","last_committed_at","is_archived"],"title":"AgentBranchSummary"},"AgentCallLimits":{"type":"object","properties":{"agent_concurrency_limit":{"description":"The maximum number of concurrent conversations. -1 indicates that there is no maximum","type":"integer","default":-1,"title":"Agent Concurrency Limit"},"daily_limit":{"description":"The maximum number of conversations per day","type":"integer","default":100000,"title":"Daily Limit"},"bursting_enabled":{"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.","type":"boolean","default":true,"title":"Bursting Enabled"}},"example":{"agent_concurrency_limit":-1,"bursting_enabled":true,"daily_limit":100000},"title":"AgentCallLimits"},"AgentConfigAPIModel-Input":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","type":"string","default":"","title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","type":"string","default":"en","title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","type":"boolean","default":false,"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig-Input"},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","type":"boolean","default":false,"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","type":"string","default":"","title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","$ref":"#/components/schemas/PromptAgentAPIModel-Input"}},"example":{"disable_first_message_interruptions":false,"first_message":"Hello, how can I help you today?","language":"en"},"title":"AgentConfigAPIModel","x-fern-type-name":"AgentConfig"},"AgentConfigAPIModel-Output":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","type":"string","default":"","title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","type":"string","default":"en","title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","type":"boolean","default":false,"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig-Output"},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","type":"boolean","default":false,"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","type":"string","default":"","title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","$ref":"#/components/schemas/PromptAgentAPIModel-Output"}},"example":{"disable_first_message_interruptions":false,"first_message":"Hello, how can I help you today?","language":"en"},"title":"AgentConfigAPIModel","x-fern-type-name":"AgentConfig"},"AgentConfigAPIModelWorkflowOverride-Input":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","anyOf":[{"$ref":"#/components/schemas/DynamicVariablesConfigWorkflowOverride"},{"type":"null"}]},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelWorkflowOverride-Input"},{"type":"null"}]}},"example":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"title":"AgentConfigAPIModelWorkflowOverride"},"AgentConfigAPIModelWorkflowOverride-Output":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","anyOf":[{"$ref":"#/components/schemas/DynamicVariablesConfigWorkflowOverride"},{"type":"null"}]},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelWorkflowOverride-Output"},{"type":"null"}]}},"example":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"title":"AgentConfigAPIModelWorkflowOverride"},"AgentConfigOverride-Input":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelOverride-Input"},{"type":"null"}]}},"example":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"title":"AgentConfigOverride"},"AgentConfigOverride-Output":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelOverride-Output"},{"type":"null"}]}},"example":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"title":"AgentConfigOverride"},"AgentConfigOverrideConfig":{"type":"object","properties":{"first_message":{"description":"Whether to allow overriding the first_message field.","type":"boolean","default":false,"title":"First Message"},"language":{"description":"Whether to allow overriding the language field.","type":"boolean","default":false,"title":"Language"},"max_conversation_duration_message":{"description":"Whether to allow overriding the max_conversation_duration_message field.","type":"boolean","default":false,"title":"Max Conversation Duration Message"},"prompt":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/PromptAgentAPIModelOverrideConfig"}},"title":"AgentConfigOverrideConfig"},"AgentDefinitionSource":{"type":"string","default":"unknown","enum":["cli","ui","api","template","unknown"],"title":"AgentDefinitionSource"},"AgentDeploymentPercentageStrategy":{"type":"object","properties":{"type":{"type":"string","default":"percentage","const":"percentage","title":"Type"},"traffic_percentage":{"description":"Traffic percentage to deploy","type":"number","examples":[0.5],"maximum":100,"minimum":0,"title":"Traffic Percentage"}},"required":["traffic_percentage"],"title":"AgentDeploymentPercentageStrategy"},"AgentDeploymentRequest":{"type":"object","properties":{"requests":{"description":"List of deployment requests","type":"array","items":{"$ref":"#/components/schemas/AgentDeploymentRequestItem"},"examples":[[{"branch_id":"agtbrch_8901k4t9z5defmb8vh3e9361y7nj","deployment_strategy":{"traffic_percentage":0.5,"type":"percentage"}}]],"title":"Requests"}},"required":["requests"],"title":"AgentDeploymentRequest"},"AgentDeploymentRequestItem":{"type":"object","properties":{"branch_id":{"description":"ID of the branch to deploy","type":"string","examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"},"deployment_strategy":{"$ref":"#/components/schemas/AgentDeploymentPercentageStrategy","discriminator":{"propertyName":"type","mapping":{"percentage":"#/components/schemas/AgentDeploymentPercentageStrategy"}},"title":"Deployment Strategy"}},"required":["branch_id","deployment_strategy"],"title":"AgentDeploymentRequestItem"},"AgentDeploymentResponse":{"type":"object","properties":{"traffic_percentage_branch_id_map":{"description":"Map of branch IDs to traffic percentages","type":"object","additionalProperties":{"type":"number"},"examples":[{"agtbrch_8901k4t9z5defmb8vh3e9361y7nj":0.5}],"title":"Traffic Percentage Branch Id Map"}},"title":"AgentDeploymentResponse"},"AgentFailureResponseExample":{"type":"object","properties":{"response":{"type":"string","title":"Response"},"type":{"type":"string","const":"failure","title":"Type"}},"required":["response","type"],"title":"AgentFailureResponseExample"},"AgentKnowledgeBaseRagChunkResponseModel":{"type":"object","properties":{"document_id":{"description":"ID of the source knowledge base document.","type":"string","title":"Document Id"},"document_name":{"description":"Name of the source knowledge base document.","type":"string","title":"Document Name"},"chunk_id":{"description":"ID of the retrieved chunk.","type":"string","title":"Chunk Id"},"text":{"description":"Text content of the retrieved chunk.","type":"string","title":"Text"},"vector_distance":{"description":"Similarity distance when exposed by the retrieval strategy.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Vector Distance"}},"required":["document_id","document_name","chunk_id","text","vector_distance"],"title":"AgentKnowledgeBaseRagChunkResponseModel"},"AgentKnowledgeBaseRagQueryRequestModel":{"type":"object","properties":{"query":{"description":"Query to run against the agent's knowledge base RAG index.","type":"string","examples":["How do I reset my password?"],"minLength":1,"title":"Query"}},"required":["query"],"title":"AgentKnowledgeBaseRagQueryRequestModel"},"AgentKnowledgeBaseRagQueryResponseModel":{"type":"object","properties":{"retrieval_query":{"description":"Raw query used for retrieval (echoes the request query).","type":"string","title":"Retrieval Query"},"chunks":{"description":"Ranked chunks the agent would retrieve, after distance and length filtering.","type":"array","items":{"$ref":"#/components/schemas/AgentKnowledgeBaseRagChunkResponseModel"},"title":"Chunks"}},"example":{"chunks":[{"chunk_id":"chunk_498cjVigY5qzO86Huf0OWal","document_id":"doc_J3Pbu5gP6NNKBscdCdwB","document_name":"Account FAQ","text":"To reset your password, open Settings and choose Security...","vector_distance":0.21}],"retrieval_query":"How do I reset my password?"},"required":["retrieval_query","chunks"],"title":"AgentKnowledgeBaseRagQueryResponseModel"},"AgentMetadata":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["agent_id"],"title":"AgentMetadata"},"AgentMetadataDBModel":{"type":"object","properties":{"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"updated_at_unix_secs":{"type":"integer","title":"Updated At Unix Secs"},"created_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"},"last_updated_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"}},"required":["created_at_unix_secs","updated_at_unix_secs"],"title":"AgentMetadataDBModel"},"AgentMetadataResponseModel":{"type":"object","properties":{"created_at_unix_secs":{"description":"The creation time of the agent in unix seconds","type":"integer","title":"Created At Unix Secs"},"updated_at_unix_secs":{"description":"The last update time of the agent in unix seconds","type":"integer","title":"Updated At Unix Secs"}},"required":["created_at_unix_secs","updated_at_unix_secs"],"title":"AgentMetadataResponseModel"},"AgentPlatformSettingsRequestModel":{"type":"object","properties":{"evaluation":{"description":"Settings for evaluation","$ref":"#/components/schemas/EvaluationSettings-Input"},"widget":{"description":"Configuration for the widget","$ref":"#/components/schemas/WidgetConfig-Input"},"data_collection":{"description":"Data collection settings","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisProperty"},"title":"Data Collection"},"data_collection_scopes":{"description":"Scope per data collection item ID. Missing keys default to conversation scope.","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisScope"},"title":"Data Collection Scopes"},"overrides":{"description":"Additional overrides for the agent during conversation initiation","$ref":"#/components/schemas/ConversationInitiationClientDataConfig-Input"},"workspace_overrides":{"description":"Workspace overrides for the agent","$ref":"#/components/schemas/AgentWorkspaceOverrides-Input"},"testing":{"description":"Testing configuration for the agent","$ref":"#/components/schemas/AgentTestingSettings"},"archived":{"description":"Whether the agent is archived","type":"boolean","default":false,"title":"Archived"},"guardrails":{"description":"Guardrails configuration for the agent","$ref":"#/components/schemas/GuardrailsV1-Input","discriminator":{"propertyName":"version","mapping":{"1":"#/components/schemas/GuardrailsV1-Input"}},"title":"Guardrails"},"summary_language":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary Language"},"auto_translate_transcript_to_app_language":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Translate Transcript To App Language"},"auth":{"description":"Settings for authentication","$ref":"#/components/schemas/AuthSettings"},"call_limits":{"description":"Call limits for the agent","$ref":"#/components/schemas/AgentCallLimits"},"privacy":{"description":"Privacy settings for the agent","$ref":"#/components/schemas/PrivacyConfig-Input"},"trust_context":{"description":"The trust context in which the agent operates.","default":"unknown","$ref":"#/components/schemas/AgentTrustContext"},"analysis_llm":{"description":"Default LLM model for post-call analysis (evaluation and data collection)","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM"},"topic_discovery":{"description":"Per-agent topic discovery configuration","$ref":"#/components/schemas/TopicDiscoverySettings"},"sentiment_analysis":{"description":"Per-agent post-call sentiment analysis configuration","$ref":"#/components/schemas/SentimentAnalysisSettings"}},"title":"AgentPlatformSettingsRequestModel"},"AgentPlatformSettingsResponseModel":{"type":"object","properties":{"evaluation":{"description":"Settings for evaluation","$ref":"#/components/schemas/EvaluationSettings-Output"},"widget":{"description":"Configuration for the widget","$ref":"#/components/schemas/WidgetConfig-Output"},"data_collection":{"description":"Data collection settings","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisProperty"},"title":"Data Collection"},"data_collection_scopes":{"description":"Scope per data collection item ID. Missing keys default to conversation scope.","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisScope"},"title":"Data Collection Scopes"},"overrides":{"description":"Additional overrides for the agent during conversation initiation","$ref":"#/components/schemas/ConversationInitiationClientDataConfig-Output"},"workspace_overrides":{"description":"Workspace overrides for the agent","$ref":"#/components/schemas/AgentWorkspaceOverrides-Output"},"testing":{"description":"Testing configuration for the agent","$ref":"#/components/schemas/AgentTestingSettings"},"archived":{"description":"Whether the agent is archived","type":"boolean","default":false,"title":"Archived"},"guardrails":{"description":"Guardrails configuration for the agent","$ref":"#/components/schemas/GuardrailsV1-Output","discriminator":{"propertyName":"version","mapping":{"1":"#/components/schemas/GuardrailsV1-Output"}},"title":"Guardrails"},"summary_language":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary Language"},"auto_translate_transcript_to_app_language":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Translate Transcript To App Language"},"auth":{"description":"Settings for authentication","$ref":"#/components/schemas/AuthSettings"},"call_limits":{"description":"Call limits for the agent","$ref":"#/components/schemas/AgentCallLimits"},"privacy":{"description":"Privacy settings for the agent","$ref":"#/components/schemas/PrivacyConfig-Output"},"trust_context":{"description":"The trust context in which the agent operates.","default":"unknown","$ref":"#/components/schemas/AgentTrustContext"},"analysis_llm":{"description":"Default LLM model for post-call analysis (evaluation and data collection)","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM"},"topic_discovery":{"description":"Per-agent topic discovery configuration","$ref":"#/components/schemas/TopicDiscoverySettings"},"sentiment_analysis":{"description":"Per-agent post-call sentiment analysis configuration","$ref":"#/components/schemas/SentimentAnalysisSettings"},"safety":{"$ref":"#/components/schemas/SafetyResponseModel"}},"title":"AgentPlatformSettingsResponseModel"},"AgentSimulatedChatTestResponseModel":{"type":"object","properties":{"simulated_conversation":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModel"},"title":"Simulated Conversation"},"analysis":{"$ref":"#/components/schemas/ConversationHistoryAnalysisCommonModel"}},"required":["simulated_conversation","analysis"],"title":"AgentSimulatedChatTestResponseModel"},"AgentSortBy":{"type":"string","enum":["name","created_at","call_count_7d"],"title":"AgentSortBy"},"AgentSuccessfulResponseExample":{"type":"object","properties":{"response":{"type":"string","title":"Response"},"type":{"type":"string","const":"success","title":"Type"}},"required":["response","type"],"title":"AgentSuccessfulResponseExample"},"AgentSummaryBatchSuccessfulResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"success","const":"success","title":"Status"},"data":{"$ref":"#/components/schemas/AgentSummaryResponseModel"}},"required":["status","data"],"title":"AgentSummaryBatchSuccessfulResponseModel"},"AgentSummaryResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"name":{"description":"The name of the agent","type":"string","title":"Name"},"tags":{"description":"Agent tags used to categorize the agent","type":"array","items":{"type":"string"},"title":"Tags"},"created_at_unix_secs":{"description":"The creation time of the agent in unix seconds","type":"integer","title":"Created At Unix Secs"},"access_info":{"description":"The access information of the agent","$ref":"#/components/schemas/ResourceAccessInfo"},"last_call_time_unix_secs":{"description":"The time of the most recent call in unix seconds, null if no calls have been made","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Call Time Unix Secs"},"archived":{"description":"Whether the agent is archived","type":"boolean","default":false,"title":"Archived"}},"example":{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"agent_id":"J3Pbu5gP6NNKBscdCdwB","archived":false,"created_at_unix_secs":1716153600,"last_call_time_unix_secs":1716240000,"name":"My Agent","tags":["Customer Support","Technical Help","Eleven"]},"required":["agent_id","name","tags","created_at_unix_secs","access_info"],"title":"AgentSummaryResponseModel"},"AgentTestEntityType":{"type":"string","default":"test","enum":["test","folder"],"title":"AgentTestEntityType"},"AgentTestFolderPathSegmentResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","default":"","title":"Name"}},"required":["id"],"title":"AgentTestFolderPathSegmentResponseModel"},"AgentTestingSettings":{"description":"Settings for agent testing configuration.","type":"object","properties":{"attached_tests":{"description":"List of test IDs that should be run for this agent","type":"array","items":{"$ref":"#/components/schemas/AttachedTestModel"},"maxItems":5000,"minItems":0,"title":"Attached Tests"}},"example":{"attached_tests":[{"environment":"staging","test_id":"test_123","workflow_node_id":"node_abc"},{"test_id":"test_456"}],"referenced_tests_ids":["test_123","test_456"]},"title":"AgentTestingSettings"},"AgentTopicResponseModel":{"type":"object","properties":{"topic_id":{"type":"string","title":"Topic Id"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"conversation_count":{"type":"integer","title":"Conversation Count"},"parent_topic_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Topic Id"},"x_2d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"X 2D"},"y_2d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Y 2D"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/TopicMetricsAggregate"},{"type":"null"}]}},"required":["topic_id","label","description","conversation_count"],"title":"AgentTopicResponseModel"},"AgentTransfer-Input":{"type":"object","properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Id"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"is_workflow_node_transfer":{"type":"boolean","default":false,"title":"Is Workflow Node Transfer"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["condition"],"title":"AgentTransfer"},"AgentTransfer-Output":{"type":"object","properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Id"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"is_workflow_node_transfer":{"type":"boolean","default":false,"title":"Is Workflow Node Transfer"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["condition"],"title":"AgentTransfer"},"AgentTransferOp":{"discriminator":{"propertyName":"type","mapping":{"pop":"#/components/schemas/AgentTransferOpPop","push":"#/components/schemas/AgentTransferOpPush","replace":"#/components/schemas/AgentTransferOpReplace"}},"oneOf":[{"$ref":"#/components/schemas/AgentTransferOpReplace"},{"$ref":"#/components/schemas/AgentTransferOpPush"},{"$ref":"#/components/schemas/AgentTransferOpPop"}]},"AgentTransferOpPop":{"type":"object","properties":{"type":{"type":"string","default":"pop","const":"pop","title":"Type"}},"title":"AgentTransferOpPop"},"AgentTransferOpPush":{"type":"object","properties":{"type":{"type":"string","default":"push","const":"push","title":"Type"},"return_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Node Id"}},"title":"AgentTransferOpPush"},"AgentTransferOpReplace":{"type":"object","properties":{"type":{"type":"string","default":"replace","const":"replace","title":"Type"}},"title":"AgentTransferOpReplace"},"AgentTrustContext":{"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.","type":"string","default":"unknown","enum":["unknown","low","high"],"title":"AgentTrustContext"},"AgentVersionMetadata":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"type":"string","title":"Branch Id"},"version_description":{"type":"string","title":"Version Description"},"seq_no_in_branch":{"type":"integer","title":"Seq No In Branch"},"time_committed_secs":{"type":"integer","title":"Time Committed Secs"},"parents":{"$ref":"#/components/schemas/AgentVersionParents"},"access_info":{"anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]}},"required":["id","agent_id","branch_id","version_description","seq_no_in_branch","time_committed_secs","parents"],"title":"AgentVersionMetadata"},"AgentVersionParents":{"type":"object","properties":{"in_branch_parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Branch Parent Id"},"out_of_branch_parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Out Of Branch Parent Id"},"merged_into_branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merged Into Branch Id"},"merged_from_branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merged From Branch Id"},"merged_from_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merged From Version Id"},"rebased_from_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rebased From Version Id"}},"title":"AgentVersionParents"},"AgentWorkflowRequestModel":{"type":"object","properties":{"edges":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkflowEdgeModel-Input"},"title":"Edges"},"nodes":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/WorkflowStartNodeModel-Input","description":"Entry point of the workflow."},{"$ref":"#/components/schemas/WorkflowEndNodeModel-Input","description":"Terminates the conversation upon reaching this node."},{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModel-Input","description":"Transfers the conversation to a phone number."},{"$ref":"#/components/schemas/WorkflowOverrideAgentNodeModel-Input","description":"A subagent conducting the conversation until one of the exit conditions is met. Each subagent can override the base settings, changing the prompt, knowledge base, and more."},{"$ref":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Input","description":"Transfer the conversation to a standalone agent."},{"$ref":"#/components/schemas/WorkflowToolNodeModel-Input","description":"Executes one or more tools in parallel."}],"discriminator":{"propertyName":"type","mapping":{"end":"#/components/schemas/WorkflowEndNodeModel-Input","override_agent":"#/components/schemas/WorkflowOverrideAgentNodeModel-Input","phone_number":"#/components/schemas/WorkflowPhoneNumberNodeModel-Input","standalone_agent":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Input","start":"#/components/schemas/WorkflowStartNodeModel-Input","tool":"#/components/schemas/WorkflowToolNodeModel-Input"}}},"minProperties":1,"title":"Nodes"},"prevent_subagent_loops":{"description":"Whether to prevent loops in the workflow execution.","type":"boolean","default":false,"title":"Prevent Subagent Loops"}},"example":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer"},{"prompt":"Phone condition","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode"},"right":{"value":"dev"}}]}},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"conversation_config":{},"edge_order":["entry_to_tool_a"],"label":"Entry"},"failure_node":{"conversation_config":{},"label":"Failure"},"start_node":{"edge_order":["start_to_entry"]},"success_conversation":{"conversation_config":{},"label":"Success A"},"success_end":{},"success_phone":{"transfer_destination":{"phone_number":"+1234567890"}},"success_transfer":{"agent_id":"success_transfer_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}]},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"tools":[{"tool_id":"tool_a"}]}}},"title":"AgentWorkflowRequestModel"},"AgentWorkflowResponseModel":{"type":"object","properties":{"edges":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkflowEdgeModel-Output"},"title":"Edges"},"nodes":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/WorkflowStartNodeModel-Output","description":"Entry point of the workflow."},{"$ref":"#/components/schemas/WorkflowEndNodeModel-Output","description":"Terminates the conversation upon reaching this node."},{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModel-Output","description":"Transfers the conversation to a phone number."},{"$ref":"#/components/schemas/WorkflowOverrideAgentNodeModel-Output","description":"A subagent conducting the conversation until one of the exit conditions is met. Each subagent can override the base settings, changing the prompt, knowledge base, and more."},{"$ref":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Output","description":"Transfer the conversation to a standalone agent."},{"$ref":"#/components/schemas/WorkflowToolNodeModel-Output","description":"Executes one or more tools in parallel."}],"discriminator":{"propertyName":"type","mapping":{"end":"#/components/schemas/WorkflowEndNodeModel-Output","override_agent":"#/components/schemas/WorkflowOverrideAgentNodeModel-Output","phone_number":"#/components/schemas/WorkflowPhoneNumberNodeModel-Output","standalone_agent":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Output","start":"#/components/schemas/WorkflowStartNodeModel-Output","tool":"#/components/schemas/WorkflowToolNodeModel-Output"}}},"minProperties":1,"title":"Nodes"},"prevent_subagent_loops":{"description":"Whether to prevent loops in the workflow execution.","type":"boolean","default":false,"title":"Prevent Subagent Loops"}},"example":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition","type":"llm"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{"type":"unconditional"},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false,"type":"result"},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true,"type":"result"},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{"type":"unconditional"},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition","type":"llm"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition","type":"llm"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer","type":"dynamic_variable"},{"prompt":"Phone condition","type":"llm","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode","type":"dynamic_variable"},"right":{"type":"string_literal","value":"dev"},"type":"eq_operator"}],"type":"or_operator"},"type":"expression"},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":["entry_to_tool_a"],"entry_behavior":"auto","label":"Entry","position":{"x":0,"y":0},"type":"override_agent"},"failure_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Failure","position":{"x":0,"y":0},"type":"override_agent"},"start_node":{"edge_order":["start_to_entry"],"position":{"x":0,"y":0},"type":"start"},"success_conversation":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Success A","position":{"x":0,"y":0},"type":"override_agent"},"success_end":{"edge_order":[],"position":{"x":0,"y":0},"return_when_nested":true,"type":"end"},"success_phone":{"custom_sip_headers":[],"edge_order":[],"position":{"x":0,"y":0},"require_acceptance":false,"transfer_destination":{"phone_number":"+1234567890","type":"phone"},"transfer_type":"conference","type":"phone_number"},"success_transfer":{"agent_id":"success_transfer_agent","delay_ms":0,"edge_order":[],"enable_nesting":false,"enable_transferred_agent_first_message":false,"position":{"x":0,"y":0},"preserve_client_tts_overrides":false,"type":"standalone_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}],"type":"tool"},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"}],"type":"tool"}},"prevent_subagent_loops":false},"required":["edges","nodes","prevent_subagent_loops"],"title":"AgentWorkflowResponseModel"},"AgentWorkspaceOverrides-Input":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"description":"The webhook to send conversation initiation client data to","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"}},"title":"AgentWorkspaceOverrides"},"AgentWorkspaceOverrides-Output":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"description":"The webhook to send conversation initiation client data to","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"}},"title":"AgentWorkspaceOverrides"},"AlertingMonitorConfig":{"type":"object","properties":{"threshold":{"description":"Failure rate threshold at which this monitor can notify.","anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Threshold"},"auto_resolve_after_inactive_minutes":{"description":"How many minutes an alert can stay inactive before it is auto-resolved.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Auto Resolve After Inactive Minutes"}},"title":"AlertingMonitorConfig"},"AlertingSettings":{"description":"Alerting configuration used at both per-agent and per-workspace level.\n\nAll fields are optional overrides; the cascade resolver fills in defaults\nwhen they are unset. Notifiers stack and dedupe (by webhook_id) across the\nworkspace and agent layers rather than overriding each other.\n\nCascade order for per-monitor threshold and auto-resolve: agent → workspace →\nsystem default.","type":"object","properties":{"monitor_configs":{"description":"Alerting configuration keyed by monitor name.","type":"object","additionalProperties":{"$ref":"#/components/schemas/AlertingMonitorConfig"},"title":"Monitor Configs"},"auto_resolve_after_inactive_minutes":{"description":"How many minutes an alert can stay inactive before it is auto-resolved. Unset values fall through to the next layer.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Auto Resolve After Inactive Minutes"},"notifiers":{"description":"Delivery channels for alert lifecycle notifications. Stacked and deduped by webhook_id with other layers.","type":"array","items":{"$ref":"#/components/schemas/AlertingWebhookNotifier"},"maxItems":10,"title":"Notifiers"}},"title":"AlertingSettings"},"AlertingSettingsResponse":{"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.","type":"object","properties":{"monitor_configs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AlertingMonitorConfig"},"title":"Monitor Configs"},"auto_resolve_after_inactive_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Auto Resolve After Inactive Minutes"},"notifiers":{"type":"array","items":{"$ref":"#/components/schemas/AlertingWebhookNotifierResponse"},"title":"Notifiers"}},"title":"AlertingSettingsResponse"},"AlertingWebhookHeader":{"type":"object","properties":{"name":{"type":"string","maxLength":256,"title":"Name"},"is_secret":{"type":"boolean","default":false,"title":"Is Secret"},"value":{"description":"Header value. May be null only for a secret header on update.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"}},"required":["name"],"title":"AlertingWebhookHeader"},"AlertingWebhookMethod":{"type":"string","default":"POST","enum":["POST","PUT"],"title":"AlertingWebhookMethod"},"AlertingWebhookNotifier":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"webhook_id":{"description":"ID of the workspace webhook to deliver alert lifecycle notifications to.","type":"string","title":"Webhook Id"}},"required":["webhook_id"],"title":"AlertingWebhookNotifier"},"AlertingWebhookNotifierResponse":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"webhook_id":{"type":"string","title":"Webhook Id"}},"required":["webhook_id"],"title":"AlertingWebhookNotifierResponse"},"AllowedOutputFormats":{"type":"string","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"]},"AllowlistItem":{"type":"object","properties":{"hostname":{"description":"The hostname of the allowed origin","type":"string","title":"Hostname"}},"required":["hostname"],"title":"AllowlistItem"},"AnalysisProperty":{"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.","type":"object","properties":{"type":{"type":"string","enum":["boolean","string","integer","number"],"title":"Type"},"description":{"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.","type":"string","default":"","title":"Description"},"enum":{"description":"List of allowed string values for string type parameters","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum"},"is_system_provided":{"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.","type":"boolean","default":false,"title":"Is System Provided"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"allowed_values_dynamic_variable":{"description":"When set, the LLM provides the value but the runtime rejects any value not present in the list held by this dynamic variable. 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.","type":"string","default":"","title":"Allowed Values Dynamic Variable"},"constant_value":{"description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted.","default":"","anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}],"title":"Constant Value"},"is_omitted":{"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.","type":"boolean","default":false,"title":"Is Omitted"},"llm":{"description":"LLM model to use for this analysis item. If not set, uses agent's analysis_llm default.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]}},"example":{"constant_value":"","description":"My property","dynamic_variable":"","is_system_provided":false,"type":"string"},"required":["type"],"title":"AnalysisProperty"},"AnalysisScope":{"type":"string","default":"conversation","enum":["conversation","agent"],"title":"AnalysisScope"},"ApiIntegrationOAuth2AuthCodeResponse":{"description":"Response model for integration-managed OAuth2 Auth Code auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"api_integration_oauth2_auth_code","const":"api_integration_oauth2_auth_code","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"title":"Scopes"},"scope_separator":{"description":"Separator for scopes","type":"string","default":" ","enum":[" ",","],"title":"Scope Separator","x-fern-enum":{" ":{"name":"space"},",":{"name":"comma"}}},"expires_at":{"description":"ISO 8601 timestamp of when the access token expires","type":"string","title":"Expires At"},"integration_id":{"type":"string","title":"Integration Id"},"credential_id":{"type":"string","title":"Credential Id"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","token_url","expires_at","integration_id","credential_id","id"],"title":"ApiIntegrationOAuth2AuthCodeResponse"},"ApiIntegrationOAuth2CustomAppResponse":{"description":"Response model for user-owned OAuth2 Custom App auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"api_integration_oauth2_custom_app","const":"api_integration_oauth2_custom_app","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"title":"Scopes"},"scope_separator":{"description":"Separator for scopes","type":"string","default":" ","enum":[" ",","],"title":"Scope Separator","x-fern-enum":{" ":{"name":"space"},",":{"name":"comma"}}},"expires_at":{"description":"ISO 8601 timestamp of when the access token expires","type":"string","title":"Expires At"},"integration_id":{"type":"string","title":"Integration Id"},"credential_id":{"type":"string","title":"Credential Id"},"client_id":{"description":"OAuth client ID (rendered from template if credential uses templated credentials, None for legacy connections)","type":"string","title":"Client Id"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","token_url","expires_at","integration_id","credential_id","client_id","id"],"title":"ApiIntegrationOAuth2CustomAppResponse"},"ApiIntegrationWebhookOverrides":{"description":"A whitelist of fields that can be overridden by users when\nconfiguring an API Integration Webhook Tool.","type":"object","properties":{"schema_overrides":{"anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Schema Overrides"},"request_headers":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"}]},"type":"object"},{"type":"null"}],"title":"Request Headers"},"response_filter_mode":{"anyOf":[{"$ref":"#/components/schemas/ResponseFilterMode"},{"type":"null"}]},"response_filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Response Filters"}},"title":"ApiIntegrationWebhookOverrides"},"ApiIntegrationWebhookToolConfig-Input":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"tool_version":{"description":"The version of the API integration tool","type":"string","default":"1.0.0","title":"Tool Version"},"api_integration_id":{"type":"string","title":"Api Integration Id"},"api_integration_connection_id":{"type":"string","title":"Api Integration Connection Id"},"api_schema_overrides":{"description":"User overrides applied on top of the base api_schema","anyOf":[{"$ref":"#/components/schemas/ApiIntegrationWebhookOverrides"},{"type":"null"}]}},"required":["name","description","api_integration_id","api_integration_connection_id"],"title":"ApiIntegrationWebhookToolConfig"},"ApiIntegrationWebhookToolConfig-Output":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"tool_version":{"description":"The version of the API integration tool","type":"string","default":"1.0.0","title":"Tool Version"},"api_integration_id":{"type":"string","title":"Api Integration Id"},"api_integration_connection_id":{"type":"string","title":"Api Integration Connection Id"},"api_schema_overrides":{"description":"User overrides applied on top of the base api_schema","anyOf":[{"$ref":"#/components/schemas/ApiIntegrationWebhookOverrides"},{"type":"null"}]}},"required":["type","name","description","response_timeout_secs","disable_interruptions","interruption_mode","force_pre_tool_speech","pre_tool_speech","assignments","tool_call_sound","tool_call_sound_behavior","tool_error_handling_mode","dynamic_variables","execution_mode","tool_version","api_integration_id","api_integration_connection_id","api_schema_overrides"],"title":"ApiIntegrationWebhookToolConfig"},"ArrayJsonSchemaProperty-Input":{"type":"object","properties":{"property_kind":{"type":"string","default":"array","enum":["array","object"],"title":"Property Kind"},"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"description":"When set, the entire array uses this constant value at runtime. Mutually exclusive with description (LLM-provided array), dynamic_variable, and is_omitted.","anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"array","const":"array","title":"Type"},"items":{"description":"Schema for array elements.","default":{"type":"string","description":"Array element","is_system_provided":false,"dynamic_variable":"","allowed_values_dynamic_variable":"","constant_value":"","is_omitted":false},"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Input"}],"title":"Items"}},"additionalProperties":false,"title":"ArrayJsonSchemaProperty"},"ArrayJsonSchemaProperty-Output":{"type":"object","properties":{"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"description":"When set, the entire array uses this constant value at runtime. Mutually exclusive with description (LLM-provided array), dynamic_variable, and is_omitted.","anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"array","const":"array","title":"Type"},"items":{"description":"Schema for array elements.","default":{"type":"string","description":"Array element","is_system_provided":false,"dynamic_variable":"","allowed_values_dynamic_variable":"","constant_value":"","is_omitted":false},"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Output"}],"title":"Items"}},"additionalProperties":false,"title":"ArrayJsonSchemaProperty"},"AssetTranscription":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/AssetTranscriptionData"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"AssetTranscription"},"AssetTranscriptionData":{"type":"object","properties":{"language_code":{"type":"string","title":"Language Code"},"text":{"type":"string","title":"Text"},"words":{"type":"array","items":{"type":"string"},"title":"Words"},"word_start_times_ms":{"type":"array","items":{"type":"integer"},"title":"Word Start Times Ms"},"word_end_times_ms":{"type":"array","items":{"type":"integer"},"title":"Word End Times Ms"},"word_speaker_ids":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":"Word Speaker Ids"}},"required":["language_code","text","words","word_start_times_ms","word_end_times_ms","word_speaker_ids"],"title":"AssetTranscriptionData"},"AssignConversationTagsRequestModel":{"type":"object","properties":{"tag_ids":{"description":"Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op.","type":"array","items":{"type":"string"},"maxItems":50,"minItems":1,"title":"Tag Ids"}},"required":["tag_ids"],"title":"AssignConversationTagsRequestModel"},"AsyncConversationMetadata":{"description":"Metadata for async conversation delivery (Zendesk, Slack, etc.).","type":"object","properties":{"delivery_status":{"type":"string","enum":["pending","success","failed"],"title":"Delivery Status"},"delivery_timestamp":{"type":"integer","title":"Delivery Timestamp"},"delivery_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Error"},"external_system":{"type":"string","title":"External System"},"external_id":{"type":"string","title":"External Id"},"external_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Link"},"retry_count":{"type":"integer","default":0,"title":"Retry Count"},"last_retry_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Retry Timestamp"},"last_processed_external_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Processed External Message Id"}},"required":["delivery_status","delivery_timestamp","external_system","external_id"],"title":"AsyncConversationMetadata"},"AttachedTestModel":{"type":"object","properties":{"test_id":{"type":"string","title":"Test Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"}},"required":["test_id"],"title":"AttachedTestModel"},"AudioAnalysis":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/AudioAnalysisResult"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"AudioAnalysis"},"AudioAnalysisResult":{"type":"object","properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"overall_pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overall Pacing"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/AudioSegment"},"title":"Segments"},"key_moments":{"type":"array","items":{"$ref":"#/components/schemas/AudioKeyMoment"},"title":"Key Moments"}},"required":["title","description"],"title":"AudioAnalysisResult"},"AudioFilterId":{"description":"Identifiers for audio voice filters.","type":"string","enum":["phone","low_quality_phone","bright_phone"],"title":"AudioFilterId"},"AudioFormat":{"type":"string","default":"audio/pcm","enum":["audio/pcm","audio/pcmu","audio/pcma"],"title":"AudioFormat","x-fern-type-name":"OpenAIAudioFormat"},"AudioIsolationHistoryItemResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"format":{"type":"string","title":"Format"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"source_video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Video Url"},"supports_video":{"type":"boolean","title":"Supports Video"},"processing":{"type":"boolean","title":"Processing"},"video_processing_failed":{"type":"boolean","title":"Video Processing Failed"},"preview_b64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview B64"}},"required":["id","title","created_at_unix","format","duration_seconds","download_url","icon_url","source_video_url","supports_video","processing","video_processing_failed","preview_b64"],"title":"AudioIsolationHistoryItemResponseModel"},"AudioKeyMoment":{"type":"object","properties":{"timestamp_ms":{"type":"integer","title":"Timestamp Ms"},"type":{"type":"string","title":"Type"},"description":{"type":"string","title":"Description"}},"required":["timestamp_ms","type","description"],"title":"AudioKeyMoment"},"AudioNativeCreateProjectResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the created Audio Native project.","type":"string","title":"Project Id"},"converting":{"description":"Whether the project is currently being converted.","type":"boolean","title":"Converting"},"html_snippet":{"description":"The HTML snippet to embed the Audio Native player.","type":"string","title":"Html Snippet"}},"example":{"converting":false,"html_snippet":"
","project_id":"JBFqnCBsd6RMkjVDRZzb"},"required":["project_id","converting","html_snippet"],"title":"AudioNativeCreateProjectResponseModel","x-fern-type-name":"AudioNativeCreateProjectResponseModel"},"AudioNativeEditContentResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"converting":{"description":"Whether the project is currently being converted.","type":"boolean","title":"Converting"},"publishing":{"description":"Whether the project is currently being published.","type":"boolean","title":"Publishing"},"html_snippet":{"description":"The HTML snippet to embed the Audio Native player.","type":"string","title":"Html Snippet"}},"example":{"converting":false,"html_snippet":"","project_id":"JBFqnCBsd6RMkjVDRZzb","publishing":false},"required":["project_id","converting","publishing","html_snippet"],"title":"AudioNativeEditContentResponseModel"},"AudioNativeProjectSettingsResponseModel":{"type":"object","properties":{"title":{"description":"The title of the project.","type":"string","title":"Title"},"image":{"description":"The image of the project.","type":"string","title":"Image"},"author":{"description":"The author of the project.","type":"string","title":"Author"},"small":{"description":"Whether the project is small.","type":"boolean","title":"Small"},"text_color":{"description":"The text color of the project.","type":"string","title":"Text Color"},"background_color":{"description":"The background color of the project.","type":"string","title":"Background Color"},"sessionization":{"description":"The sessionization of the project. Specifies for how many minutes to persist the session across page reloads.","type":"integer","title":"Sessionization"},"audio_path":{"description":"The path of the audio file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Path"},"audio_url":{"description":"The URL of the audio file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"},"status":{"description":"Current state of the project","type":"string","default":"ready","enum":["processing","ready"],"title":"Status"}},"example":{"audio_path":"audio/my_project.mp3","audio_url":"https://example.com/audio/my_project.mp3","author":"John Doe","background_color":"#FFFFFF","image":"https://example.com/image.jpg","sessionization":1,"small":false,"status":"ready","text_color":"#000000","title":"My Project"},"required":["title","image","author","small","text_color","background_color","sessionization"],"title":"AudioNativeProjectSettingsResponseModel"},"AudioRefChunk":{"type":"object","properties":{"song_id":{"description":"The ID of the song to source the chunk from. You can find the song ID in the response headers when you generate a song.","type":"string","maxLength":100,"minLength":1,"title":"Song Id"},"range":{"description":"The time range to extract from the song.","$ref":"#/components/schemas/TimeRange"}},"required":["song_id","range"],"title":"AudioRefChunk"},"AudioSegment":{"type":"object","properties":{"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"},"description":{"type":"string","title":"Description"},"segment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Type"},"has_speech":{"type":"boolean","default":false,"title":"Has Speech"},"has_music":{"type":"boolean","default":false,"title":"Has Music"},"pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pacing"}},"required":["start_ms","end_ms","description"],"title":"AudioSegment"},"AudioWithTimestampsAndVoiceSegmentsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"voice_segments":{"description":"Voice segments for the audio","type":"array","items":{"$ref":"#/components/schemas/VoiceSegment"},"title":"Voice Segments"}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5,0.6,0.7],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4,0.5,0.6],"characters":["H","e","l","l","o","H","i"]},"audio_base64":"base64_encoded_audio_string","normalized_alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5,0.6,0.7],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4,0.5,0.6],"characters":["H","e","l","l","o","H","i"]},"voice_segments":[{"character_end_index":5,"character_start_index":0,"dialogue_input_index":0,"end_time_seconds":0.5,"start_time_seconds":0,"voice_id":"21m00Tcm4TlvDq8ikWAM"},{"character_end_index":7,"character_start_index":5,"dialogue_input_index":1,"end_time_seconds":0.7,"start_time_seconds":0.5,"voice_id":"VEDscrYI8uIMttlO2Ztu"}]},"required":["audio_base64","voice_segments"],"title":"AudioWithTimestampsAndVoiceSegmentsResponseModel"},"AudioWithTimestampsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4],"characters":["H","e","l","l","o"]},"audio_base64":"base64_encoded_audio_string","normalized_alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4],"characters":["H","e","l","l","o"]}},"required":["audio_base64"],"title":"AudioWithTimestampsResponseModel","x-fern-type-name":"AudioWithTimestampsResponse"},"AuthConnectionDependencies":{"description":"Dependencies that use an auth connection","type":"object","properties":{"tools":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableToolIdentifier"},{"$ref":"#/components/schemas/DependentUnknownToolIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableToolIdentifier","unknown":"#/components/schemas/DependentUnknownToolIdentifier"}}},"default":[],"title":"Tools"},"mcp_servers":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableMCPServerIdentifier"},{"$ref":"#/components/schemas/DependentUnknownMCPServerIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableMCPServerIdentifier","unknown":"#/components/schemas/DependentUnknownMCPServerIdentifier"}}},"default":[],"title":"Mcp Servers"},"integration_connections":{"type":"array","items":{"$ref":"#/components/schemas/DependentIntegrationConnectionIdentifier"},"default":[],"title":"Integration Connections"}},"title":"AuthConnectionDependencies"},"AuthConnectionLocator":{"description":"Used to reference an auth connection from the workspace's auth connection store.","type":"object","properties":{"auth_connection_id":{"type":"string","title":"Auth Connection Id"}},"required":["auth_connection_id"],"title":"AuthConnectionLocator"},"AuthConnectionStatus":{"description":"Single status field shared by every auth type's stored credential.\n\nOAuth values (``REFRESH_FAILED``, ``REVOKED``) are written by the OAuth\ntoken-manager refresh path. ``CREDENTIAL_INVALID`` is written by the\ntool execution path when an upstream response matches a credential's\n``failure_signatures`` entry (Bearer, Basic auth, etc.).","type":"string","default":"active","enum":["active","refresh_failed","revoked","credential_invalid"],"title":"AuthConnectionStatus"},"AuthSettings":{"type":"object","properties":{"enable_auth":{"description":"If set to true, starting a conversation with an agent will require a signed token","type":"boolean","default":false,"title":"Enable Auth"},"allowlist":{"description":"A list of hosts that are allowed to start conversations with the agent","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Allowlist"},"require_origin_header":{"description":"When enabled, connections with no origin header will be rejected. If the allowlist is empty, this option has no effect.","type":"boolean","default":false,"title":"Require Origin Header"},"shareable_token":{"description":"A shareable token that can be used to start a conversation with the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Token"}},"example":{"allowlist":[{"hostname":"https://example.com"}],"enable_auth":true,"require_origin_header":true,"shareable_token":"1234567890"},"title":"AuthSettings"},"AuthenticationActivityId":{"description":"OCSF Activity IDs for Authentication [3002] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/authentication","type":"integer","enum":[0,1,2,3,4,5,6,7,99],"title":"AuthenticationActivityId"},"AuthorizationMethod":{"type":"string","default":"public","enum":["invalid","public","authorization_header","signed_url","shareable_link","livekit_token","livekit_token_website","genesys_api_key","whatsapp","sms"],"title":"AuthorizationMethod"},"AutoGenerationMetadata":{"description":"Metadata for an automatically generated simulation test.\n\nTracks the origin and context of tests that were auto-generated from\nconversations, including the source conversation, topic, and evaluation\ncriteria the test covers.","type":"object","properties":{"agent_id":{"description":"Agent whose simulation library this test belongs to.","type":"string","title":"Agent Id"},"stable_topic_id":{"description":"Stable topic id (from topic discovery) this test covers.","type":"string","title":"Stable Topic Id"},"criteria_id":{"description":"Evaluation criterion id this test targets.","type":"string","title":"Criteria Id"},"topic_label":{"description":"Human-readable topic label at generation time.","type":"string","title":"Topic Label"},"source_conversation_id":{"description":"Conversation the test was generated from.","type":"string","title":"Source Conversation Id"},"generated_at_unix":{"description":"Unix timestamp (seconds) when the test was generated.","type":"integer","title":"Generated At Unix"}},"required":["agent_id","stable_topic_id","criteria_id","topic_label","source_conversation_id","generated_at_unix"],"title":"AutoGenerationMetadata"},"AutoSyncInfo":{"type":"object","properties":{"minimum_frequency_days":{"description":"Maximum number of days between automatic syncs","type":"integer","default":7,"maximum":180,"minimum":1,"title":"Minimum Frequency Days"},"auto_remove":{"description":"Whether to remove the document if the URL becomes unavailable","type":"boolean","default":false,"title":"Auto Remove"},"consec_failures":{"description":"Number of consecutive sync failures","type":"integer","default":0,"minimum":0,"title":"Consec Failures"},"next_refresh_by":{"description":"Unix timestamp for the next scheduled sync or None (in case of folders)","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Refresh By"}},"title":"AutoSyncInfo"},"BackgroundSoundConfig":{"type":"object","properties":{"source_type":{"description":"The type of background sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundSourceType"},{"type":"null"}]},"source_id":{"description":"Identifier for the sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundPresetId"},{"type":"null"}]},"volume":{"description":"Volume level for background sound (0.01 to 1.0).","type":"number","default":0.6,"maximum":1,"minimum":0.01,"title":"Volume"},"crossfade_loop":{"description":"Apply a crossfade at the loop boundary to avoid audible pops when the sound loops.","type":"boolean","default":false,"title":"Crossfade Loop"}},"title":"BackgroundSoundConfig"},"BackgroundSoundConfigWorkflowOverride":{"type":"object","properties":{"source_type":{"description":"The type of background sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundSourceType"},{"type":"null"}]},"source_id":{"description":"Identifier for the sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundPresetId"},{"type":"null"}]},"volume":{"description":"Volume level for background sound (0.01 to 1.0).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Volume"},"crossfade_loop":{"description":"Apply a crossfade at the loop boundary to avoid audible pops when the sound loops.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Crossfade Loop"}},"title":"BackgroundSoundConfigWorkflowOverride"},"BackgroundSoundPresetId":{"description":"Predefined background sound preset identifiers.","type":"string","enum":["office2","office1","restaurant","city","typing","elevator1","elevator2","elevator3","elevator4"],"title":"BackgroundSoundPresetId"},"BackgroundSoundSourceType":{"description":"The type of background sound source.","type":"string","enum":["preset"],"title":"BackgroundSoundSourceType"},"BackupLLMDefault":{"type":"object","properties":{"preference":{"type":"string","default":"default","const":"default","title":"Preference"}},"title":"BackupLLMDefault"},"BackupLLMDisabled":{"type":"object","properties":{"preference":{"type":"string","default":"disabled","const":"disabled","title":"Preference"}},"title":"BackupLLMDisabled"},"BackupLLMOverride":{"type":"object","properties":{"preference":{"type":"string","default":"override","const":"override","title":"Preference"},"order":{"type":"array","items":{"$ref":"#/components/schemas/LLM"},"title":"Order"}},"required":["order"],"title":"BackupLLMOverride"},"BaseTurnConfig":{"type":"object","properties":{"turn_timeout":{"description":"Maximum wait time for the user's reply before re-engaging the user","type":"number","default":7,"title":"Turn Timeout"},"initial_wait_time":{"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.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Wait Time"},"silence_end_call_timeout":{"description":"Maximum wait time since the user last spoke before terminating the call","type":"number","default":-1,"title":"Silence End Call Timeout"},"mode":{"description":"The mode of turn detection","default":"turn","$ref":"#/components/schemas/TurnMode","x-fern-ignore":true},"turn_eagerness":{"description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)","default":"normal","$ref":"#/components/schemas/TurnEagerness"},"spelling_patience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra","default":"auto","$ref":"#/components/schemas/SpellingPatience"},"speculative_turn":{"description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs.","type":"boolean","default":false,"title":"Speculative Turn"},"retranscribe_on_turn_timeout":{"description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing for affected turns.","type":"boolean","default":false,"title":"Retranscribe On Turn Timeout"},"turn_model":{"default":"turn_v3","$ref":"#/components/schemas/TurnModel"},"interruption_ignore_terms":{"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Terms"},"interruption_ignore_term_languages":{"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Term Languages"},"transcribe_on_disabled_interruptions":{"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.","type":"boolean","default":false,"title":"Transcribe On Disabled Interruptions"}},"example":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_timeout":7},"title":"BaseTurnConfig"},"BasicAuthResponse":{"description":"Response model for basic auth","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"basic_auth","const":"basic_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"username":{"type":"string","title":"Username"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","username","id"],"title":"BasicAuthResponse"},"BatchCallDetailedResponse":{"description":"Detailed response model for a batch call including all recipients.","type":"object","properties":{"id":{"type":"string","title":"Id"},"phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number Id"},"phone_provider":{"anyOf":[{"$ref":"#/components/schemas/TelephonyProvider"},{"type":"null"}]},"whatsapp_params":{"anyOf":[{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"scheduled_time_unix":{"type":"integer","title":"Scheduled Time Unix"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"total_calls_dispatched":{"type":"integer","default":0,"title":"Total Calls Dispatched"},"total_calls_scheduled":{"type":"integer","default":0,"title":"Total Calls Scheduled"},"total_calls_finished":{"type":"integer","default":0,"title":"Total Calls Finished"},"last_updated_at_unix":{"type":"integer","title":"Last Updated At Unix"},"status":{"$ref":"#/components/schemas/BatchCallStatus"},"retry_count":{"type":"integer","default":0,"title":"Retry Count"},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfig"},"target_concurrency_limit":{"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Target Concurrency Limit"},"agent_name":{"type":"string","title":"Agent Name"},"branch_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Name"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/OutboundCallRecipientResponseModel"},"title":"Recipients"}},"required":["id","phone_number_id","phone_provider","whatsapp_params","name","agent_id","branch_id","environment","created_at_unix","scheduled_time_unix","timezone","total_calls_dispatched","total_calls_scheduled","total_calls_finished","last_updated_at_unix","status","retry_count","telephony_call_config","target_concurrency_limit","agent_name","branch_name","recipients"],"title":"BatchCallDetailedResponse"},"BatchCallRecipientStatus":{"type":"string","enum":["pending","dispatched","initiated","in_progress","completed","failed","cancelled","voicemail"],"title":"BatchCallRecipientStatus"},"BatchCallResponse":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number Id"},"phone_provider":{"anyOf":[{"$ref":"#/components/schemas/TelephonyProvider"},{"type":"null"}]},"whatsapp_params":{"anyOf":[{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"scheduled_time_unix":{"type":"integer","title":"Scheduled Time Unix"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"total_calls_dispatched":{"type":"integer","default":0,"title":"Total Calls Dispatched"},"total_calls_scheduled":{"type":"integer","default":0,"title":"Total Calls Scheduled"},"total_calls_finished":{"type":"integer","default":0,"title":"Total Calls Finished"},"last_updated_at_unix":{"type":"integer","title":"Last Updated At Unix"},"status":{"$ref":"#/components/schemas/BatchCallStatus"},"retry_count":{"type":"integer","default":0,"title":"Retry Count"},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfig"},"target_concurrency_limit":{"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Target Concurrency Limit"},"agent_name":{"type":"string","title":"Agent Name"},"branch_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Name"}},"required":["id","phone_number_id","phone_provider","whatsapp_params","name","agent_id","branch_id","environment","created_at_unix","scheduled_time_unix","timezone","total_calls_dispatched","total_calls_scheduled","total_calls_finished","last_updated_at_unix","status","retry_count","telephony_call_config","target_concurrency_limit","agent_name","branch_name"],"title":"BatchCallResponse"},"BatchCallStatus":{"type":"string","enum":["pending","in_progress","completed","failed","cancelled"],"title":"BatchCallStatus"},"BatchCallWhatsAppParams":{"type":"object","properties":{"whatsapp_phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp Phone Number Id"},"whatsapp_call_permission_request_template_name":{"type":"string","title":"Whatsapp Call Permission Request Template Name"},"whatsapp_call_permission_request_template_language_code":{"type":"string","title":"Whatsapp Call Permission Request Template Language Code"}},"required":["whatsapp_call_permission_request_template_name","whatsapp_call_permission_request_template_language_code"],"title":"BatchCallWhatsAppParams"},"BatchFailureResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"failure","const":"failure","title":"Status"},"error_code":{"type":"integer","title":"Error Code"},"error_status":{"type":"string","title":"Error Status"},"error_message":{"type":"string","title":"Error Message"}},"required":["status","error_code","error_status","error_message"],"title":"BatchFailureResponseModel"},"BearerAuthResponse":{"description":"Response model for bearer auth","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"bearer_auth","const":"bearer_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","id"],"title":"BearerAuthResponse"},"BehaviorOverride":{"type":"object","properties":{"verbosity":{"description":"Verbosity override. Underlying default applies when unset.","anyOf":[{"$ref":"#/components/schemas/Verbosity"},{"type":"null"}]},"output_format":{"description":"Output format override. Underlying default applies when unset.","anyOf":[{"$ref":"#/components/schemas/OutputFormat"},{"type":"null"}]},"interaction_budget":{"description":"Interaction budget override. Underlying default applies when unset.","anyOf":[{"$ref":"#/components/schemas/InteractionBudget"},{"type":"null"}]}},"title":"BehaviorOverride"},"BillingPeriod":{"type":"string","enum":["monthly_period","3_month_period","6_month_period","annual_period"],"title":"BillingPeriod"},"Body_Add_a_language_to_the_resource_v1_dubbing_resource__dubbing_id__language_post":{"type":"object","properties":{"language":{"description":"The Target language.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"required":["language"],"title":"Body_Add_a_language_to_the_resource_v1_dubbing_resource__dubbing_id__language_post"},"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_file_post":{"type":"object","properties":{"name":{"description":"The name of the pronunciation dictionary, used for identification only.","type":"string","examples":["My Dictionary"],"title":"Name"},"file":{"description":"A lexicon .pls file which we will use to initialize the project with.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"description":{"description":"A description of the pronunciation dictionary, used for identification only.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Contains pronunciation's of our character names"],"title":"Description"},"workspace_access":{"description":"Should be one of 'admin', 'editor' or 'viewer'. If not provided, defaults to no access.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"examples":["viewer"],"title":"Workspace Access"}},"required":["name"],"title":"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_file_post","x-fern-type-name":"AddPronunciationDictionaryRequest"},"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_rules_post":{"type":"object","properties":{"rules":{"description":"List of pronunciation rules. Rule can be either:\n an alias rule: {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b', }\n or a phoneme rule: {'string_to_replace': 'a', 'type': 'phoneme', 'phoneme': 'b', 'alphabet': 'ipa' }","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleRequestModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleRequestModel"}]},"examples":["\n [\n {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b' },\n {'string_to_replace': 'c', 'type': 'phoneme', 'phoneme': 'd', 'alphabet': 'ipa' }\n ]"],"title":"Rules"},"name":{"description":"The name of the pronunciation dictionary, used for identification only.","type":"string","examples":["My Dictionary"],"title":"Name"},"description":{"description":"A description of the pronunciation dictionary, used for identification only.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Contains pronunciation's of our character names"],"title":"Description"},"workspace_access":{"description":"Should be one of 'admin', 'editor' or 'viewer'. If not provided, defaults to no access.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"examples":["viewer"],"title":"Workspace Access"}},"required":["rules","name"],"title":"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_rules_post"},"Body_Add_member_to_user_group_v1_workspace_groups__group_id__members_post":{"type":"object","properties":{"email":{"description":"The email of the target workspace member.","type":"string","title":"Email"}},"required":["email"],"title":"Body_Add_member_to_user_group_v1_workspace_groups__group_id__members_post","x-fern-type-name":"AddMemberToGroupRequest"},"Body_Add_rules_to_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__add_rules_post":{"type":"object","properties":{"rules":{"description":"List of pronunciation rules. Rule can be either:\n an alias rule: {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b', }\n or a phoneme rule: {'string_to_replace': 'a', 'type': 'phoneme', 'phoneme': 'b', 'alphabet': 'ipa' }","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleRequestModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleRequestModel"}],"x-fern-type-name":"PronunciationDictionaryRule"},"examples":["\n [\n {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b' },\n {'string_to_replace': 'c', 'type': 'phoneme', 'phoneme': 'd', 'alphabet': 'ipa' }\n ]"],"title":"Rules"}},"required":["rules"],"title":"Body_Add_rules_to_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__add_rules_post","x-fern-type-name":"PronunciationDictionary"},"Body_Add_samples_to_PVC_voice_v1_voices_pvc__voice_id__samples_post":{"type":"object","properties":{"files":{"description":"Audio files used to create the voice.","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"}},"required":["files"],"title":"Body_Add_samples_to_PVC_voice_v1_voices_pvc__voice_id__samples_post"},"Body_Add_shared_voice_v1_voices_add__public_user_id___voice_id__post":{"type":"object","properties":{"new_name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"title":"New Name"},"bookmarked":{"type":"boolean","default":true,"title":"Bookmarked"}},"required":["new_name"],"title":"Body_Add_shared_voice_v1_voices_add__public_user_id___voice_id__post"},"Body_Add_to_knowledge_base_v1_convai_knowledge_base_post":{"type":"object","properties":{"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"url":{"description":"URL to a page of documentation that the agent will have access to in order to interact with users.","type":"string","title":"Url"},"file":{"description":"Documentation that the agent will have access to in order to interact with users.","type":"string","format":"binary","title":"File"}},"title":"Body_Add_to_knowledge_base_v1_convai_knowledge_base_post"},"Body_Add_voice_v1_voices_add_post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"title":"Name"},"files":{"description":"A list of file paths to audio recordings intended for voice cloning.","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"description":{"description":"A description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"string"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"}},"required":["name","files"],"title":"Body_Add_voice_v1_voices_add_post","x-fern-type-name":"AddVoiceRequest"},"Body_Audio_Isolation_Stream_v1_audio_isolation_stream_post":{"type":"object","properties":{"audio":{"description":"The audio file from which vocals/speech will be isolated from.","type":"string","format":"binary","title":"Audio"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"}},"required":["audio"],"title":"Body_Audio_Isolation_Stream_v1_audio_isolation_stream_post","x-fern-type-name":"AudioIsolationStreamRequest"},"Body_Audio_Isolation_v1_audio_isolation_post":{"type":"object","properties":{"audio":{"description":"The audio file from which vocals/speech will be isolated from.","type":"string","format":"binary","title":"Audio"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"},"preview_b64":{"description":"Optional preview image base64 for tracking this generation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview B64"}},"required":["audio"],"title":"Body_Audio_Isolation_v1_audio_isolation_post","x-fern-type-name":"AudioIsolationRequest"},"Body_Bulk_move_entities_to_folder_v1_convai_knowledge_base_bulk_move_post":{"type":"object","properties":{"document_ids":{"description":"The ids of documents or folders from the knowledge base.","type":"array","items":{"type":"string"},"examples":[["21m00Tcm4TlvDq8ikWAM","31m00Tcm4TlvDq8ikWBM"]],"maxItems":20,"minItems":1,"title":"Document Ids","uniqueItems":true},"move_to":{"description":"The folder to move the entities to. If not set, the entities will be moved to the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Move To"}},"required":["document_ids"],"title":"Body_Bulk_move_entities_to_folder_v1_convai_knowledge_base_bulk_move_post"},"Body_Bulk_move_tests_to_folder_v1_convai_agent_testing_bulk_move_post":{"type":"object","properties":{"entity_ids":{"description":"The IDs of tests or folders to move.","type":"array","items":{"type":"string"},"minItems":1,"title":"Entity Ids","uniqueItems":true},"move_to":{"description":"The folder to move the entities to. If not set, the entities will be moved to the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Move To"}},"required":["entity_ids"],"title":"Body_Bulk_move_tests_to_folder_v1_convai_agent_testing_bulk_move_post"},"Body_Compose_Music_with_a_detailed_response_v1_music_detailed_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength"},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"respect_sections_durations":{"description":"Controls how strictly section durations in the `composition_plan` are enforced. Only used with `composition_plan` and only applies to `music_v1`; for `music_v2` section durations are always enforced and this is ignored. When false for `music_v1`, the model may adjust individual section durations for better quality and latency, while preserving the total song duration from the plan.","type":"boolean","default":true,"title":"Respect Sections Durations"},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"},"with_timestamps":{"description":"Whether to return the timestamps of the words in the generated song.","type":"boolean","default":false,"title":"With Timestamps"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"},"model_style_prefix":{"type":"string","default":"music","enum":["music","sfx"],"title":"Model Style Prefix","x-fern-ignore":true}},"title":"Body_Compose_Music_with_a_detailed_response_v1_music_detailed_post"},"Body_Compose_music_v1_music_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength"},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"respect_sections_durations":{"description":"Controls how strictly section durations in the `composition_plan` are enforced. Only used with `composition_plan` and only applies to `music_v1`; for `music_v2` section durations are always enforced and this is ignored. When false for `music_v1`, the model may adjust individual section durations for better quality and latency, while preserving the total song duration from the plan.","type":"boolean","default":true,"title":"Respect Sections Durations"},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"}},"title":"Body_Compose_music_v1_music_post"},"Body_Compute_RAG_indexes_in_batch_v1_convai_knowledge_base_rag_index_post":{"type":"object","properties":{"items":{"description":"List of requested RAG indexes. Minimum 1, maximum 100 items.","type":"array","items":{"$ref":"#/components/schemas/GetOrCreateRAGIndexRequestModel"},"maxItems":100,"minItems":1,"title":"Items"}},"required":["items"],"title":"Body_Compute_RAG_indexes_in_batch_v1_convai_knowledge_base_rag_index_post"},"Body_Create_Agent_v1_convai_agents_create_post":{"type":"object","properties":{"conversation_config":{"description":"Conversation configuration for an agent","$ref":"#/components/schemas/ConversationalConfigAPIModel-Input"},"platform_settings":{"description":"Platform settings for the agent are all settings that aren't related to the conversation orchestration and content.","anyOf":[{"$ref":"#/components/schemas/AgentPlatformSettingsRequestModel"},{"type":"null"}]},"workflow":{"description":"Workflow for the agent. This is used to define the flow of the conversation and how the agent interacts with tools.","$ref":"#/components/schemas/AgentWorkflowRequestModel"},"name":{"description":"A name to make the agent easier to find","anyOf":[{"type":"string"},{"type":"null"}],"examples":["My agent"],"optional":true,"title":"Name"},"tags":{"description":"Tags to help classify and filter the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["Customer Support","Technical Help","Eleven"]],"optional":true,"title":"Tags"}},"required":["conversation_config"],"title":"Body_Create_Agent_v1_convai_agents_create_post"},"Body_Create_Dubbing_Language_Target_v1_dubbing_project__project_id__language_post":{"type":"object","properties":{"target_language":{"description":"BCP-47 language tag to dub the project into (e.g. 'fr', 'es-419').","type":"string","title":"Target Language"},"model_id":{"description":"Dubbing model id for this target; omit to use the project default.","anyOf":[{"type":"string","const":"dubbing_v2"},{"type":"null"}],"title":"Model Id"},"voice_settings":{"description":"Voice settings applied to the whole language (e.g. cloning strength).","anyOf":[{"$ref":"#/components/schemas/VoiceSettings"},{"type":"null"}]}},"required":["target_language"],"title":"Body_Create_Dubbing_Language_Target_v1_dubbing_project__project_id__language_post"},"Body_Create_Dubbing_Project_v1_dubbing_project_post":{"type":"object","properties":{"file":{"description":"The source media file to dub. Provide this or source_url.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"source_url":{"description":"Public URL to fetch the source media from. Provide this or file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"reference":{"description":"Optional free-form string (max 500 characters) to identify the project on your end.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"},"source_language":{"description":"BCP-47 language tag of the source media. Omit to auto-detect.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"model_id":{"description":"Default dubbing model id for the project's language targets; a target may override it. Omit to use the system default.","anyOf":[{"type":"string","const":"dubbing_v2"},{"type":"null"}],"title":"Model Id"},"keyterms":{"description":"Key terms to bias transcription/translation toward (e.g. product or brand names). At most 1000 terms; each term at most 50 characters and 5 words; the characters `<>{}[]\\` are not allowed.","type":"array","items":{"type":"string"},"title":"Keyterms"},"target_language":{"description":"Optional shortcut: also create a language target in this BCP-47 language, queued to start once the project is ready.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Language"}},"title":"Body_Create_Dubbing_Project_v1_dubbing_project_post"},"Body_Create_Music_Finetune_v1_music_finetunes_post":{"type":"object","properties":{"name":{"description":"Name for the finetune (5-200 characters).","type":"string","maxLength":200,"minLength":5,"title":"Name"},"primary_genre":{"description":"Primary musical genre of the finetune.","type":"string","title":"Primary Genre"},"files":{"description":"Audio files to train on.","type":"array","items":{"type":"string","format":"binary"},"default":[],"maxItems":50,"title":"Files"},"tags":{"description":"Tags to associate with the finetune.","type":"array","items":{"type":"string"},"default":[],"title":"Tags"},"visibility":{"description":"Finetune visibility. Only 'private' and 'workspace' can be set.","anyOf":[{"type":"string","enum":["private","workspace"]},{"type":"null"}],"title":"Visibility"},"model_id":{"description":"The model to create a finetune for.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"}},"required":["name","primary_genre"],"title":"Body_Create_Music_Finetune_v1_music_finetunes_post"},"Body_Create_PVC_voice_v1_voices_pvc_post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"maxLength":100,"title":"Name"},"language":{"description":"Language used in the samples.","type":"string","examples":["en"],"title":"Language"},"description":{"description":"Description to use for the created voice.","anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"}},"required":["name","language"],"title":"Body_Create_PVC_voice_v1_voices_pvc_post","x-fern-type-name":"CreatePvcVoiceRequest"},"Body_Create_Pronunciation_Dictionaries_v1_studio_projects__project_id__pronunciation_dictionaries_post":{"type":"object","properties":{"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (pronunciation_dictionary_id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text. A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody. To specify multiple dictionaries use multiple --form lines in your curl, such as --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"Vmd4Zor6fplcA7WrINey\\\",\\\"version_id\\\":\\\"hRPaxjlTdR7wFMhV4w0b\\\"}\"' --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"JzWtcGQMJ6bnlWwyMo7e\\\",\\\"version_id\\\":\\\"lbmwxiLu4q6txYxgdZqn\\\"}\"'.","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorDBModel"},"examples":[["{\"pronunciation_dictionary_id\": \"21m00Tcm4TlvDq8ikWAM\", \"version_id\": \"BdF0s0aZ3oFoKnDYdTox\"}"]],"title":"Pronunciation Dictionary Locators"},"invalidate_affected_text":{"description":"This will automatically mark text in this project for reconversion when the new dictionary applies or the old one no longer does.","type":"boolean","default":true,"examples":[false],"title":"Invalidate Affected Text"}},"required":["pronunciation_dictionary_locators"],"title":"Body_Create_Pronunciation_Dictionaries_v1_studio_projects__project_id__pronunciation_dictionaries_post"},"Body_Create_Studio_project_v1_studio_projects_post":{"type":"object","properties":{"name":{"description":"The name of the Studio project, used for identification only.","type":"string","examples":["Project 1"],"title":"Name"},"default_title_voice_id":{"description":"The voice_id that corresponds to the default voice used for new titles.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The voice_id that corresponds to the default voice used for new paragraphs.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Paragraph Voice Id"},"default_model_id":{"description":"The ID of the model to be used for this Studio project, you can query GET /v1/models to list all available models.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["eleven_multilingual_v2"],"title":"Default Model Id"},"from_url":{"description":"An optional URL from which we will extract content to initialize the Studio project. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://blog.elevenlabs.io/the_first_ai_that_can_laugh/"],"title":"From Url"},"from_document":{"description":"An optional .epub, .pdf, .txt or similar file can be provided. If provided, we will initialize the Studio project with its content. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"From Document"},"from_content_json":{"description":"\n An optional content to initialize the Studio project with. If this is set, 'from_url' and 'from_document' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.\n\n Example:\n [{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]\n ","type":"string","examples":["[{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]"],"title":"From Content Json"},"quality_preset":{"description":"Output quality of the generated audio. Must be one of:\n'standard' - standard output format, 128kbps with 44.1kHz sample rate.\n'high' - high quality output format, 192kbps with 44.1kHz sample rate and major improvements on our side.\n'ultra' - ultra quality output format, 192kbps with 44.1kHz sample rate and highest improvements on our side.\n'ultra_lossless' - ultra quality output format, 705.6kbps with 44.1kHz sample rate and highest improvements on our side in a fully lossless format.\n","default":"standard","$ref":"#/components/schemas/QualityPresetType","examples":["standard"],"title":"Quality of the generated audio."},"title":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Romeo and Juliet"],"title":"Title"},"author":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["William Shakespeare"],"title":"Author"},"description":{"description":"An optional description of the Studio project.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["A tragic love story between two young lovers."],"title":"Description"},"genres":{"description":"An optional list of genres associated with the Studio project.","type":"array","items":{"type":"string"},"examples":[["Romance","Drama"]],"title":"Genres"},"target_audience":{"description":"An optional target audience of the Studio project.","anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"examples":["adult"],"title":"Target Audience"},"language":{"description":"An optional language of the Studio project. Two-letter language code (ISO 639-1).","anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"examples":["en"],"title":"Language"},"content_type":{"description":"An optional content type of the Studio project.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Book"],"title":"Content Type"},"original_publication_date":{"description":"An optional original publication date of the Studio project, in the format YYYY-MM-DD or YYYY.","anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$|^\\d{4}$"},{"type":"null"}],"examples":["1597-01-01"],"title":"Original Publication Date"},"mature_content":{"description":"An optional specification of whether this Studio project contains mature content.","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[false],"title":"Mature Content"},"isbn_number":{"description":"An optional ISBN number of the Studio project you want to create, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["0-306-40615-2"],"title":"Isbn Number"},"acx_volume_normalization":{"description":"[Deprecated] When the Studio project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements","type":"boolean","default":false,"examples":[false],"title":"Acx Volume Normalization"},"volume_normalization":{"description":"When the Studio project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements","type":"boolean","default":false,"examples":[false],"title":"Volume Normalization"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (pronunciation_dictionary_id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text. A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody. To specify multiple dictionaries use multiple --form lines in your curl, such as --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"Vmd4Zor6fplcA7WrINey\\\",\\\"version_id\\\":\\\"hRPaxjlTdR7wFMhV4w0b\\\"}\"' --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"JzWtcGQMJ6bnlWwyMo7e\\\",\\\"version_id\\\":\\\"lbmwxiLu4q6txYxgdZqn\\\"}\"'.","type":"array","items":{"type":"string"},"examples":[["{\"pronunciation_dictionary_id\": \"21m00Tcm4TlvDq8ikWAM\", \"version_id\": \"BdF0s0aZ3oFoKnDYdTox\"}"]],"title":"Pronunciation Dictionary Locators"},"callback_url":{"description":"\n A url that will be called by our service when the Studio project is converted. Request will contain a json blob containing the status of the conversion\n Messages:\n 1. When project was converted successfully:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"success\",\n project_snapshot_id: \"22m00Tcm4TlvDq8ikMAT\",\n error_details: None,\n }\n }\n 2. When project conversion failed:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"error\",\n project_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n\n 3. When chapter was converted successfully:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"success\",\n chapter_snapshot_id: \"23m00Tcm4TlvDq8ikMAV\",\n error_details: None,\n }\n }\n 4. When chapter conversion failed:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"error\",\n chapter_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n ","anyOf":[{"type":"string"},{"type":"null"}],"examples":[["https://www.test.com/my-api/projects-status"]],"title":"Callback Url"},"fiction":{"description":"An optional specification of whether the content of this Studio project is fiction.","anyOf":[{"type":"string","enum":["fiction","non-fiction"]},{"type":"null"}],"examples":["fiction"],"title":"Fiction"},"apply_text_normalization":{"description":"\n This parameter controls text normalization with four modes: 'auto', 'on', 'apply_english' and 'off'.\n When set to 'auto', the system will automatically decide whether to apply text normalization\n (e.g., spelling out numbers). With 'on', text normalization will always be applied, while\n with 'off', it will be skipped. 'apply_english' is the same as 'on' but will assume that text is in English.\n ","anyOf":[{"type":"string","enum":["auto","on","off","apply_english"]},{"type":"null"}],"title":"Apply Text Normalization"},"auto_convert":{"description":"Whether to auto convert the Studio project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"},"auto_assign_voices":{"description":"[Alpha Feature] Whether automatically assign voices to phrases in the create Project.","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Assign Voices"},"source_type":{"description":"The type of Studio project to create.","anyOf":[{"type":"string","enum":["blank","book","article","genfm","video","screenplay"]},{"type":"null"}],"examples":["book"],"title":"Source Type"},"voice_settings":{"description":" Optional voice settings overrides for the project, encoded as a list of JSON strings.\n\n Example:\n [\"{\\\"voice_id\\\": \\\"21m00Tcm4TlvDq8ikWAM\\\", \\\"stability\\\": 0.7, \\\"similarity_boost\\\": 0.8, \\\"style\\\": 0.5, \\\"speed\\\": 1.0, \\\"use_speaker_boost\\\": true}\"]\n ","type":"array","items":{"type":"string"},"examples":[["{\"voice_id\": \"21m00Tcm4TlvDq8ikWAM\", \"stability\": 0.7, \"similarity_boost\": 0.8, \"style\": 0.5, \"speed\": 1.0, \"use_speaker_boost\": true}"]],"title":"Voice Settings"},"create_publishing_read":{"description":"If true, creates a corresponding read for direct publishing in draft state","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Create Publishing Read"}},"required":["name"],"title":"Body_Create_Studio_project_v1_studio_projects_post"},"Body_Create_URL_document_v1_convai_knowledge_base_url_post":{"type":"object","properties":{"url":{"description":"URL to a page of documentation that the agent will have access to in order to interact with users.","type":"string","title":"Url"},"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"},"enable_auto_sync":{"description":"Whether to enable auto-sync for this URL document.","type":"boolean","default":false,"title":"Enable Auto Sync"},"auto_remove":{"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled.","type":"boolean","default":false,"title":"Auto Remove"}},"required":["url"],"title":"Body_Create_URL_document_v1_convai_knowledge_base_url_post"},"Body_Create_a_new_branch_v1_convai_agents__agent_id__branches_post":{"type":"object","properties":{"parent_version_id":{"description":"ID of the version to branch from","type":"string","title":"Parent Version Id"},"name":{"description":"Name of the branch. It is unique within the agent.","type":"string","maxLength":140,"title":"Name"},"description":{"description":"Description for the branch","type":"string","maxLength":4096,"title":"Description"},"conversation_config":{"description":"Changes to apply to conversation config","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation Config"},"platform_settings":{"description":"Changes to apply to platform settings","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Platform Settings"},"workflow":{"description":"Updated workflow definition","anyOf":[{"$ref":"#/components/schemas/AgentWorkflowRequestModel"},{"type":"null"}]}},"required":["parent_version_id","name","description"],"title":"Body_Create_a_new_branch_v1_convai_agents__agent_id__branches_post"},"Body_Create_a_new_speaker_v1_dubbing_resource__dubbing_id__speaker_post":{"type":"object","properties":{"speaker_name":{"description":"Name to attribute to this speaker.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Name"},"voice_id":{"description":"Either the identifier of a voice from the ElevenLabs voice library, or one of ['track-clone', 'clip-clone'].","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_stability":{"description":"For models that support it, the voice similarity value to use. This will default to 0.65, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Stability"},"voice_similarity":{"description":"For models that support it, the voice similarity value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Similarity"},"voice_style":{"description":"For models that support it, the voice style value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Style"}},"title":"Body_Create_a_new_speaker_v1_dubbing_resource__dubbing_id__speaker_post"},"Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_post":{"type":"object","properties":{"voice_name":{"description":"Name to use for the created voice.","type":"string","examples":["Sassy squeaky mouse"],"title":"Voice Name"},"voice_description":{"description":"Description to use for the created voice.","type":"string","examples":["A sassy squeaky mouse"],"maxLength":1000,"minLength":20,"title":"Voice Description"},"generated_voice_id":{"description":"The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews.","type":"string","examples":["37HceQefKmEi3bGovXjL"],"title":"Generated Voice Id"},"labels":{"description":"Optional, metadata to add to the created voice. Defaults to None.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"examples":[{"language":"en"}],"name":"Voice metadata","title":"Labels"},"played_not_selected_voice_ids":{"description":"List of voice ids that the user has played but not selected. Used for RLHF.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Played Not Selected Voice Ids"}},"required":["voice_name","voice_description","generated_voice_id"],"title":"Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_post"},"Body_Create_agent_draft_v1_convai_agents__agent_id__drafts_post":{"type":"object","properties":{"conversation_config":{"description":"Conversation config for the draft","type":"object","additionalProperties":true,"title":"Conversation Config"},"platform_settings":{"description":"Platform settings for the draft","type":"object","additionalProperties":true,"title":"Platform Settings"},"workflow":{"description":"Workflow for the draft","$ref":"#/components/schemas/AgentWorkflowRequestModel"},"name":{"description":"Name for the draft","type":"string","title":"Name"},"tags":{"description":"Tags to help classify and filter the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["Customer Support","Technical Help","Eleven"]],"optional":true,"title":"Tags"}},"required":["conversation_config","platform_settings","workflow","name"],"title":"Body_Create_agent_draft_v1_convai_agents__agent_id__drafts_post"},"Body_Create_agent_test_folder_v1_convai_agent_testing_folders_post":{"type":"object","properties":{"name":{"description":"The name of the folder to create","type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the folder will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"Body_Create_agent_test_folder_v1_convai_agent_testing_folders_post"},"Body_Create_chapter_v1_studio_projects__project_id__chapters_post":{"type":"object","properties":{"name":{"description":"The name of the chapter, used for identification only.","type":"string","examples":["Chapter 1"],"title":"Name"},"from_url":{"description":"An optional URL from which we will extract content to initialize the Studio project. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://blog.elevenlabs.io/the_first_ai_that_can_laugh/"],"title":"From Url"}},"required":["name"],"title":"Body_Create_chapter_v1_studio_projects__project_id__chapters_post"},"Body_Create_file_document_v1_convai_knowledge_base_file_post":{"type":"object","properties":{"file":{"description":"Documentation that the agent will have access to in order to interact with users.","type":"string","format":"binary","title":"File"},"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["file"],"title":"Body_Create_file_document_v1_convai_knowledge_base_file_post"},"Body_Create_folder_v1_convai_knowledge_base_folder_post":{"type":"object","properties":{"name":{"description":"A custom, human-readable name for the document.","type":"string","minLength":1,"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"},"enable_auto_sync":{"description":"Whether to enable auto-sync for this URL document.","type":"boolean","default":false,"title":"Enable Auto Sync"},"auto_remove":{"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled.","type":"boolean","default":false,"title":"Auto Remove"}},"required":["name"],"title":"Body_Create_folder_v1_convai_knowledge_base_folder_post"},"Body_Create_forced_alignment_v1_forced_alignment_post":{"type":"object","properties":{"file":{"description":"The file to align. All major audio formats are supported. The file size must be less than 1GB.","type":"string","format":"binary","title":"File"},"text":{"description":"The text to align with the audio. The input text can be in any format, however diarization is not supported at this time.","type":"string","title":"Text"}},"required":["file","text"],"title":"Body_Create_forced_alignment_v1_forced_alignment_post"},"Body_Create_or_update_deployments_v1_convai_agents__agent_id__deployments_post":{"type":"object","properties":{"deployment_request":{"description":"Request to create a new deployment","$ref":"#/components/schemas/AgentDeploymentRequest"}},"required":["deployment_request"],"title":"Body_Create_or_update_deployments_v1_convai_agents__agent_id__deployments_post"},"Body_Create_podcast_v1_studio_podcasts_post":{"type":"object","properties":{"model_id":{"description":"The ID of the model to be used for this Studio project, you can query GET /v1/models to list all available models.","type":"string","examples":["eleven_multilingual_v2"],"title":"Model Id"},"mode":{"description":"The type of podcast to generate. Can be 'conversation', an interaction between two voices, or 'bulletin', a monologue.","anyOf":[{"$ref":"#/components/schemas/PodcastConversationMode"},{"$ref":"#/components/schemas/PodcastBulletinMode"}],"examples":[{"conversation":{"guest_voice_id":"bYTqZQo3Jz7LQtmGTgwi","host_voice_id":"6lCwbsX1yVjD49QmpkTR"},"type":"conversation"}],"title":"Mode"},"source":{"description":"The source content for the Podcast.","anyOf":[{"$ref":"#/components/schemas/PodcastTextSource"},{"$ref":"#/components/schemas/PodcastURLSource"},{"items":{"anyOf":[{"$ref":"#/components/schemas/PodcastTextSource"},{"$ref":"#/components/schemas/PodcastURLSource"}]},"type":"array"}],"examples":[{"type":"url","url":"https://en.wikipedia.org/wiki/Cognitive_science"}],"title":"Source"},"quality_preset":{"description":"Output quality of the generated audio. Must be one of:\n'standard' - standard output format, 128kbps with 44.1kHz sample rate.\n'high' - high quality output format, 192kbps with 44.1kHz sample rate and major improvements on our side.\n'ultra' - ultra quality output format, 192kbps with 44.1kHz sample rate and highest improvements on our side.\n'ultra_lossless' - ultra quality output format, 705.6kbps with 44.1kHz sample rate and highest improvements on our side in a fully lossless format.\n","default":"standard","$ref":"#/components/schemas/QualityPresetType","examples":["standard"],"title":"Quality of the generated audio."},"duration_scale":{"description":"Duration of the generated podcast. Must be one of:\nshort - produces podcasts shorter than 3 minutes.\ndefault - produces podcasts roughly between 3-7 minutes.\nlong - produces podcasts longer than 7 minutes.\n","type":"string","default":"default","enum":["short","default","long"],"examples":["short"],"title":"The duration of the generated podcast. This varies depending on the format, voice and language."},"language":{"description":"An optional language of the Studio project. Two-letter language code (ISO 639-1).","anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"examples":["en"],"title":"Language"},"intro":{"description":"The intro text that will always be added to the beginning of the podcast.","anyOf":[{"type":"string","maxLength":1500},{"type":"null"}],"examples":["Welcome to the podcast."],"title":"Intro"},"outro":{"description":"The outro text that will always be added to the end of the podcast.","anyOf":[{"type":"string","maxLength":1500},{"type":"null"}],"examples":["Thank you for listening!"],"title":"Outro"},"instructions_prompt":{"description":"Additional instructions prompt for the podcast generation used to adjust the podcast's style and tone.","anyOf":[{"type":"string","maxLength":3000},{"type":"null"}],"examples":["Ensure the podcast remains factual, accurate and appropriate for all audiences."],"title":"Instructions Prompt"},"highlights":{"description":"A brief summary or highlights of the Studio project's content, providing key points or themes. This should be between 10 and 70 characters.","anyOf":[{"items":{"type":"string","maxLength":70,"minLength":10},"type":"array"},{"type":"null"}],"examples":[["Emphasize the importance of AI on education"]],"title":"Highlights"},"callback_url":{"description":"\n A url that will be called by our service when the Studio project is converted. Request will contain a json blob containing the status of the conversion\n Messages:\n 1. When project was converted successfully:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"success\",\n project_snapshot_id: \"22m00Tcm4TlvDq8ikMAT\",\n error_details: None,\n }\n }\n 2. When project conversion failed:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"error\",\n project_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n\n 3. When chapter was converted successfully:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"success\",\n chapter_snapshot_id: \"23m00Tcm4TlvDq8ikMAV\",\n error_details: None,\n }\n }\n 4. When chapter conversion failed:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"error\",\n chapter_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n ","anyOf":[{"type":"string"},{"type":"null"}],"examples":[["https://www.test.com/my-api/projects-status"]],"title":"Callback Url"},"apply_text_normalization":{"description":"\n This parameter controls text normalization with four modes: 'auto', 'on', 'apply_english' and 'off'.\n When set to 'auto', the system will automatically decide whether to apply text normalization\n (e.g., spelling out numbers). With 'on', text normalization will always be applied, while\n with 'off', it will be skipped. 'apply_english' is the same as 'on' but will assume that text is in English.\n ","anyOf":[{"type":"string","enum":["auto","on","off","apply_english"]},{"type":"null"}],"title":"Apply Text Normalization"}},"required":["model_id","mode","source"],"title":"Body_Create_podcast_v1_studio_podcasts_post"},"Body_Create_text_document_v1_convai_knowledge_base_text_post":{"type":"object","properties":{"text":{"description":"Text content to be added to the knowledge base.","type":"string","title":"Text"},"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["text"],"title":"Body_Create_text_document_v1_convai_knowledge_base_text_post"},"Body_Create_workspace_webhook_v1_workspace_webhooks_post":{"type":"object","properties":{"settings":{"description":"Webhook settings object containing auth_type and corresponding configuration","$ref":"#/components/schemas/WebhookHMACSettings"}},"required":["settings"],"title":"Body_Create_workspace_webhook_v1_workspace_webhooks_post"},"Body_Creates_Audio_Native_enabled_project__v1_audio_native_post":{"type":"object","properties":{"name":{"description":"Project name.","type":"string","title":"Name"},"image":{"description":"(Deprecated) Image URL used in the player. If not provided, default image set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Image"},"author":{"description":"Author used in the player and inserted at the start of the uploaded article. If not provided, the default author set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"title":{"description":"Title used in the player and inserted at the top of the uploaded article. If not provided, the default title set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"small":{"description":"(Deprecated) Whether to use small player or not. If not provided, default value set in the Player settings is used.","type":"boolean","default":false,"deprecated":true,"title":"Small"},"text_color":{"description":"Text color used in the player. If not provided, default text color set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Color"},"background_color":{"description":"Background color used in the player. If not provided, default background color set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"sessionization":{"description":"(Deprecated) Specifies for how many minutes to persist the session across page reloads. If not provided, default sessionization set in the Player settings is used.","type":"integer","default":0,"deprecated":true,"title":"Sessionization"},"voice_id":{"description":"Voice ID used to voice the content. If not provided, default voice ID set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"model_id":{"description":"TTS Model ID used in the player. If not provided, default model ID set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"file":{"description":"Either txt or HTML input file containing the article content. HTML should be formatted as follows '<html><body><div><p>Your content</p><h3>More of your content</h3><p>Some more of your content</p></div></body></html>'","type":"string","format":"binary","title":"File"},"auto_convert":{"description":"Whether to auto convert the project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"},"apply_text_normalization":{"description":"\n This parameter controls text normalization with four modes: 'auto', 'on', 'apply_english' and 'off'.\n When set to 'auto', the system will automatically decide whether to apply text normalization\n (e.g., spelling out numbers). With 'on', text normalization will always be applied, while\n with 'off', it will be skipped. 'apply_english' is the same as 'on' but will assume that text is in English.\n ","anyOf":[{"type":"string","enum":["auto","on","off","apply_english"]},{"type":"null"}],"title":"Apply Text Normalization"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (pronunciation_dictionary_id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text. A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody. To specify multiple dictionaries use multiple --form lines in your curl, such as --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"Vmd4Zor6fplcA7WrINey\\\",\\\"version_id\\\":\\\"hRPaxjlTdR7wFMhV4w0b\\\"}\"' --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"JzWtcGQMJ6bnlWwyMo7e\\\",\\\"version_id\\\":\\\"lbmwxiLu4q6txYxgdZqn\\\"}\"'.","type":"array","items":{"type":"string"},"examples":[["{\"pronunciation_dictionary_id\": \"21m00Tcm4TlvDq8ikWAM\", \"version_id\": \"BdF0s0aZ3oFoKnDYdTox\"}"]],"title":"Pronunciation Dictionary Locators"}},"required":["name"],"title":"Body_Creates_Audio_Native_enabled_project__v1_audio_native_post"},"Body_Delete_existing_invitation_v1_workspace_invites_delete":{"type":"object","properties":{"email":{"description":"The email of the customer","type":"string","examples":["john.doe@testmail.com"],"title":"Email"}},"required":["email"],"title":"Body_Delete_existing_invitation_v1_workspace_invites_delete"},"Body_Delete_member_from_user_group_v1_workspace_groups__group_id__members_remove_post":{"type":"object","properties":{"email":{"description":"The email of the target workspace member.","type":"string","title":"Email"}},"required":["email"],"title":"Body_Delete_member_from_user_group_v1_workspace_groups__group_id__members_remove_post"},"Body_Download_history_items_v1_history_download_post":{"type":"object","properties":{"history_item_ids":{"description":"A list of history items to download, you can get IDs of history items and other metadata using the GET https://api.elevenlabs.io/v1/history endpoint.","type":"array","items":{"type":"string"},"title":"History Item Ids"},"output_format":{"description":"Output format to transcode the audio file, can be wav or default.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Format"}},"required":["history_item_ids"],"title":"Body_Download_history_items_v1_history_download_post","x-fern-type-name":"DownloadHistoryRequest"},"Body_Dub_a_video_or_an_audio_file_v1_dubbing_post":{"type":"object","properties":{"file":{"description":"A list of file paths to audio recordings intended for voice cloning","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"csv_file":{"description":"CSV file containing transcription/translation metadata","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Csv File"},"foreground_audio_file":{"description":"For use only with csv input","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Foreground Audio File"},"background_audio_file":{"description":"For use only with csv input","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Background Audio File"},"name":{"description":"Name of the dubbing project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"source_url":{"description":"URL of the source video/audio file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"source_lang":{"description":"Source language. Expects a valid iso639-1 or iso639-3 language code.","type":"string","default":"auto","title":"Source Lang"},"target_lang":{"description":"The Target language to dub the content into. Expects a valid iso639-1 or iso639-3 language code.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Lang"},"target_accent":{"description":"[Experimental] An accent to apply when selecting voices from the library and to use to inform translation of the dialect to prefer.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Accent"},"num_speakers":{"description":"Number of speakers to use for the dubbing. Set to 0 to automatically detect the number of speakers","type":"integer","default":0,"title":"Num Speakers"},"watermark":{"description":"Whether to apply watermark to the output video.","type":"boolean","default":false,"title":"Watermark"},"start_time":{"description":"Start time of the source video/audio file.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Time"},"end_time":{"description":"End time of the source video/audio file.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time"},"highest_resolution":{"description":"Whether to use the highest resolution available.","type":"boolean","default":false,"title":"Highest Resolution"},"drop_background_audio":{"description":"An advanced setting. Whether to drop background audio from the final dub. This can improve dub quality where it's known that audio shouldn't have a background track such as for speeches or monologues.","type":"boolean","default":false,"title":"Drop Background Audio"},"use_profanity_filter":{"description":"[BETA] Whether transcripts should have profanities censored with the words '[censored]'","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Profanity Filter"},"dubbing_studio":{"description":"Whether to prepare dub for edits in dubbing studio or edits as a dubbing resource.","type":"boolean","default":false,"title":"Dubbing Studio"},"disable_voice_cloning":{"description":"Instead of using a voice clone in dubbing, use a similar voice from the ElevenLabs Voice Library. Voices used from the library will contribute towards a workspace's custom voices limit, and if there aren't enough available slots the dub will fail. Using this feature requires the caller to have the 'add_voice_from_voice_library' permission on their workspace to access new voices.","type":"boolean","default":false,"title":"Disable Voice Cloning"},"mode":{"description":"The mode in which to run this Dubbing job. Defaults to automatic, use manual if specifically providing a CSV transcript to use. Note that manual mode is experimental and production use is strongly discouraged.","type":"string","default":"automatic","enum":["automatic","manual"],"title":"Mode"},"csv_fps":{"description":"Frames per second to use when parsing a CSV file for dubbing. If not provided, FPS will be inferred from timecodes.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Csv Fps"}},"title":"Body_Dub_a_video_or_an_audio_file_v1_dubbing_post","x-fern-type-name":"DubRequest","required":["target_lang"]},"Body_Dubs_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__dub_post":{"type":"object","properties":{"segments":{"description":"Dub only this list of segments.","type":"array","items":{"type":"string"},"title":"Segments"},"languages":{"description":"Dub only these languages for each segment.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"}},"required":["segments","languages"],"title":"Body_Dubs_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__dub_post"},"Body_Duplicate_Agent_v1_convai_agents__agent_id__duplicate_post":{"type":"object","properties":{"name":{"description":"A name to make the agent easier to find","anyOf":[{"type":"string"},{"type":"null"}],"examples":["My agent"],"optional":true,"title":"Name"}},"title":"Body_Duplicate_Agent_v1_convai_agents__agent_id__duplicate_post"},"Body_Edit_PVC_voice_v1_voices_pvc__voice_id__post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"maxLength":100,"title":"Name"},"language":{"description":"Language used in the samples.","type":"string","examples":["en"],"title":"Language"},"description":{"description":"Description to use for the created voice.","anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"}},"title":"Body_Edit_PVC_voice_v1_voices_pvc__voice_id__post"},"Body_Edit_voice_v1_voices__voice_id__edit_post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"title":"Name"},"files":{"description":"Audio files to add to the voice","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"description":{"description":"A description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"string"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"},"moderate_metadata":{"description":"Run synchronous LLM moderation over the voice name and description when they change. Has no effect unless the voice_library_metadata_moderation feature flag is enabled for the user.","type":"boolean","default":false,"title":"Moderate Metadata"}},"required":["name"],"title":"Body_Edit_voice_v1_voices__voice_id__edit_post","x-fern-type-name":"EditVoiceRequest"},"Body_Generate_composition_plan_v1_music_plan_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to compose a plan from.","type":"string","maxLength":4100,"title":"Prompt"},"music_length_ms":{"description":"The length of the composition plan to generate in milliseconds. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"source_composition_plan":{"description":"An optional composition plan to use as a source for the new composition plan.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"},{"type":"null"}],"title":"Source Composition Plan"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"}},"required":["prompt"],"title":"Body_Generate_composition_plan_v1_music_plan_post"},"Body_Get_Workspace_Usage_v1_workspace_analytics_query_usage_by_product_over_time_post":{"type":"object","properties":{"start_time":{"description":"Start of the time range as a Unix timestamp in milliseconds. Must be at least 2020-01-01.","type":"integer","minimum":1577836800000,"title":"Start Time"},"end_time":{"description":"End of the time range as a Unix timestamp in milliseconds. Must be at least 2020-01-01.","type":"integer","minimum":1577836800000,"title":"End Time"},"interval_seconds":{"description":"Bucket size in seconds. Each row in the response covers this many seconds of the selected time range. For example, pass 3600 for hourly buckets or 86400 for daily buckets. Whether `time_zone` shifts bucket boundaries depends on this value: whole-day multiples (e.g. 86400) align to local midnight; whole-hour multiples up to 24 hours (e.g. 3600, 14400) align to local hour boundaries from midnight; sub-hour values and other sizes remain UTC-anchored regardless of `time_zone`.","type":"integer","default":60,"minimum":1,"title":"Interval Seconds"},"group_by":{"anyOf":[{"items":{"type":"string","enum":["product_type","model","voice_id","user_id","fiat_currency","fiat_charge_type","region","reporting_workspace_id","request_source","resource_id","subresource_id","request_queue_type","voice_multiplier","hashed_xi_api_key","billing_group_id","surface","actor"]},"type":"array"},{"type":"null"}],"title":"Group By"},"filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/ColumnFilter"},"type":"array"},{"type":"null"}],"title":"Filters"},"time_zone":{"description":"IANA time zone identifier (e.g. 'America/New_York', 'Europe/London', 'UTC') used to align bucket boundaries for eligible `interval_seconds` values. Whole-day multiples start at local midnight; whole-hour multiples up to 24 hours align to local hour boundaries from midnight. Sub-hour intervals and other bucket sizes remain UTC-anchored regardless of this setting. Defaults to UTC.","type":"string","default":"UTC","title":"Time Zone"}},"required":["start_time","end_time"],"title":"Body_Get_Workspace_Usage_v1_workspace_analytics_query_usage_by_product_over_time_post"},"Body_Get_similar_library_voices_v1_similar_voices_post":{"type":"object","properties":{"audio_file":{"type":"string","format":"binary","title":"Audio File"},"similarity_threshold":{"description":"Threshold for voice similarity between provided sample and library voices. Values range from 0 to 2. The smaller the value the more similar voices will be returned.","anyOf":[{"type":"number"},{"type":"null"}],"examples":[0.5],"title":"Similarity Threshold"},"top_k":{"description":"Number of most similar voices to return. If similarity_threshold is provided, less than this number of voices may be returned. Values range from 1 to 100.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[10],"title":"Top K"}},"title":"Body_Get_similar_library_voices_v1_similar_voices_post","x-fern-type-name":"ListSimilarVoicesRequest"},"Body_Handle_an_outbound_call_via_Exotel_v1_convai_exotel_outbound_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_phone_number_id":{"type":"string","title":"Agent Phone Number Id"},"to_number":{"type":"string","title":"To Number"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"}},"required":["agent_id","agent_phone_number_id","to_number"],"title":"Body_Handle_an_outbound_call_via_Exotel_v1_convai_exotel_outbound_call_post"},"Body_Handle_an_outbound_call_via_SIP_trunk_v1_convai_sip_trunk_outbound_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_phone_number_id":{"type":"string","title":"Agent Phone Number Id"},"to_number":{"type":"string","title":"To Number"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"}},"required":["agent_id","agent_phone_number_id","to_number"],"title":"Body_Handle_an_outbound_call_via_SIP_trunk_v1_convai_sip_trunk_outbound_call_post"},"Body_Handle_an_outbound_call_via_Twilio_v1_convai_twilio_outbound_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_phone_number_id":{"type":"string","title":"Agent Phone Number Id"},"to_number":{"type":"string","title":"To Number"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]},"call_recording_enabled":{"description":"Whether let Twilio record the call.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Call Recording Enabled"},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"}},"required":["agent_id","agent_phone_number_id","to_number"],"title":"Body_Handle_an_outbound_call_via_Twilio_v1_convai_twilio_outbound_call_post"},"Body_Invite_multiple_users_v1_workspace_invites_add_bulk_post":{"type":"object","properties":{"emails":{"description":"The email of the customer","type":"array","items":{"type":"string"},"examples":["john.doe@testmail.com"],"title":"Emails"},"seat_type":{"description":"The seat type of the user","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}],"examples":["workspace_member","workspace_admin"]},"group_ids":{"description":"The group ids of the user","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["group_id_1","group_id_2"]],"title":"Group Ids"},"usage_limit":{"description":"Monthly credit usage limit for the invitee. Omit or set to null for no custom cap.","anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"examples":[5000],"title":"Usage Limit"}},"required":["emails"],"title":"Body_Invite_multiple_users_v1_workspace_invites_add_bulk_post"},"Body_Invite_user_v1_workspace_invites_add_post":{"type":"object","properties":{"email":{"description":"The email of the customer","type":"string","examples":["john.doe@testmail.com"],"title":"Email"},"workspace_permission":{"description":"The workspace permission of the user. This is deprecated, use `seat_type` instead.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"examples":["workspace_member","workspace_admin"],"title":"Workspace Permission"},"seat_type":{"description":"The seat type of the user","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}],"examples":["workspace_member","workspace_admin"]},"group_ids":{"description":"The group ids of the user","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["group_id_1","group_id_2"]],"title":"Group Ids"},"usage_limit":{"description":"Monthly credit usage limit for the invitee. Omit or set to null for no custom cap.","anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"examples":[5000],"title":"Usage Limit"}},"required":["email"],"title":"Body_Invite_user_v1_workspace_invites_add_post","x-fern-type-name":"InviteUserRequest"},"Body_List_API_requests_v1_workspace_analytics_requests_post":{"type":"object","properties":{"start_time":{"description":"Start of the time range as a Unix timestamp in milliseconds.","anyOf":[{"type":"integer","minimum":1577836800000},{"type":"null"}],"title":"Start Time"},"end_time":{"description":"End of the time range as a Unix timestamp in milliseconds.","anyOf":[{"type":"integer","minimum":1577836800000},{"type":"null"}],"title":"End Time"},"limit":{"type":"integer","default":100,"maximum":1000,"minimum":1,"title":"Limit"},"sort":{"description":"Optional timestamp sort direction. If omitted, defaults to desc when end_time is provided, otherwise asc.","anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"null"}],"title":"Sort"},"filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/ColumnFilter"},"type":"array"},{"type":"null"}],"title":"Filters"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},"title":"Body_List_API_requests_v1_workspace_analytics_requests_post"},"Body_Make_an_outbound_call_via_WhatsApp_v1_convai_whatsapp_outbound_call_post":{"type":"object","properties":{"whatsapp_phone_number_id":{"type":"string","title":"Whatsapp Phone Number Id"},"whatsapp_user_id":{"type":"string","title":"Whatsapp User Id"},"whatsapp_call_permission_request_template_name":{"type":"string","title":"Whatsapp Call Permission Request Template Name"},"whatsapp_call_permission_request_template_language_code":{"type":"string","title":"Whatsapp Call Permission Request Template Language Code"},"agent_id":{"type":"string","title":"Agent Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"required":["whatsapp_phone_number_id","whatsapp_user_id","whatsapp_call_permission_request_template_name","whatsapp_call_permission_request_template_language_code","agent_id"],"title":"Body_Make_an_outbound_call_via_WhatsApp_v1_convai_whatsapp_outbound_call_post"},"Body_Merge_a_branch_into_a_target_branch_v1_convai_agents__agent_id__branches__source_branch_id__merge_post":{"type":"object","properties":{"archive_source_branch":{"description":"Whether to archive the source branch after merging","type":"boolean","default":true,"title":"Archive Source Branch"},"force":{"description":"Force source branch changes onto the target, overriding timestamp-based conflict resolution","type":"boolean","default":false,"title":"Force"}},"title":"Body_Merge_a_branch_into_a_target_branch_v1_convai_agents__agent_id__branches__source_branch_id__merge_post"},"Body_Move_entity_to_folder_v1_convai_knowledge_base__document_id__move_post":{"type":"object","properties":{"move_to":{"description":"The folder to move the entities to. If not set, the entities will be moved to the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Move To"}},"title":"Body_Move_entity_to_folder_v1_convai_knowledge_base__document_id__move_post"},"Body_Move_segments_between_speakers_v1_dubbing_resource__dubbing_id__migrate_segments_post":{"type":"object","properties":{"segment_ids":{"type":"array","items":{"type":"string"},"title":"Segment Ids"},"speaker_id":{"type":"string","title":"Speaker Id"}},"required":["segment_ids","speaker_id"],"title":"Body_Move_segments_between_speakers_v1_dubbing_resource__dubbing_id__migrate_segments_post"},"Body_Patches_an_Agent_settings_v1_convai_agents__agent_id__patch":{"type":"object","properties":{"conversation_config":{"description":"Conversation configuration for an agent","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation Config","$ref":"#/components/schemas/ConversationalConfigAPIModel-Input"},"platform_settings":{"description":"Platform settings for the agent are all settings that aren't related to the conversation orchestration and content.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Platform Settings","$ref":"#/components/schemas/AgentPlatformSettingsRequestModel"},"workflow":{"description":"Workflow for the agent. This is used to define the flow of the conversation and how the agent interacts with tools.","$ref":"#/components/schemas/AgentWorkflowRequestModel"},"name":{"description":"A name to make the agent easier to find","anyOf":[{"type":"string"},{"type":"null"}],"examples":["My agent"],"optional":true,"title":"Name"},"tags":{"description":"Tags to help classify and filter the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["Customer Support","Technical Help","Eleven"]],"optional":true,"title":"Tags"},"version_description":{"description":"Description for this version when publishing changes (only applicable for versioned agents)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Description"}},"title":"Body_Patches_an_Agent_settings_v1_convai_agents__agent_id__patch","x-fern-type-name":"UpdateAgentRequest"},"Body_Post_Agent_avatar_v1_convai_agents__agent_id__avatar_post":{"type":"object","properties":{"avatar_file":{"description":"An image file to be used as the agent's avatar.","type":"string","format":"binary","title":"Avatar File"}},"required":["avatar_file"],"title":"Body_Post_Agent_avatar_v1_convai_agents__agent_id__avatar_post"},"Body_Register_a_Twilio_call_and_return_TwiML_v1_convai_twilio_register_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"from_number":{"type":"string","title":"From Number"},"to_number":{"type":"string","title":"To Number"},"direction":{"default":"inbound","$ref":"#/components/schemas/TelephonyDirection"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"required":["agent_id","from_number","to_number"],"title":"Body_Register_a_Twilio_call_and_return_TwiML_v1_convai_twilio_register_call_post"},"Body_Register_media_v1_productions_orders__order_id__media_post":{"type":"object","properties":{"declared_language":{"description":"The language code of the media content (e.g. 'en', 'es-ES'). Must be a supported source language for some order item kind.","type":"string","title":"Declared Language"},"media":{"description":"The media file to upload. Mutually exclusive with media_url.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Media"},"media_url":{"description":"A URL to fetch the media file from. Mutually exclusive with media.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Url"},"media_url_filename":{"description":"The filename for URL-sourced media (e.g. 'example.mp4'). Required when using media_url.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Url Filename"},"media_url_content_type":{"description":"The MIME type for URL-sourced media (e.g. 'video/mp4'). Required when using media_url.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Url Content Type"}},"required":["declared_language"],"title":"Body_Register_media_v1_productions_orders__order_id__media_post"},"Body_Remove_rules_from_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__remove_rules_post":{"type":"object","properties":{"rule_strings":{"description":"List of strings to remove from the pronunciation dictionary.","type":"array","items":{"type":"string"},"examples":["['a', 'b']"],"title":"Rule Strings"}},"required":["rule_strings"],"title":"Body_Remove_rules_from_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__remove_rules_post","x-fern-type-name":"RemovePronunciationDictionaryRulesRequest"},"Body_Render_audio_or_video_for_the_given_language_v1_dubbing_resource__dubbing_id__render__language__post":{"type":"object","properties":{"render_type":{"description":"The type of the render. One of ['mp4', 'aac', 'mp3', 'wav', 'aaf', 'tracks_zip', 'clips_zip']","$ref":"#/components/schemas/RenderType"},"normalize_volume":{"description":"Whether to normalize the volume of the rendered audio.","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Normalize Volume"}},"required":["render_type"],"title":"Body_Render_audio_or_video_for_the_given_language_v1_dubbing_resource__dubbing_id__render__language__post"},"Body_Request_manual_verification_v1_voices_pvc__voice_id__verification_post":{"type":"object","properties":{"files":{"description":"Verification documents","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"extra_text":{"description":"Extra text to be used in the manual verification process.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Extra Text"}},"required":["files"],"title":"Body_Request_manual_verification_v1_voices_pvc__voice_id__verification_post"},"Body_Run_PVC_training_v1_voices_pvc__voice_id__train_post":{"type":"object","properties":{"model_id":{"description":"The model ID to use for the conversion.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["eleven_turbo_v2"],"title":"Model Id"}},"title":"Body_Run_PVC_training_v1_voices_pvc__voice_id__train_post"},"Body_Send_an_outbound_message_via_WhatsApp_v1_convai_whatsapp_outbound_message_post":{"type":"object","properties":{"whatsapp_phone_number_id":{"type":"string","title":"Whatsapp Phone Number Id"},"whatsapp_user_id":{"type":"string","title":"Whatsapp User Id"},"template_name":{"type":"string","title":"Template Name"},"template_language_code":{"type":"string","title":"Template Language Code"},"template_params":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WhatsAppTemplateHeaderComponentParams"},{"$ref":"#/components/schemas/WhatsAppTemplateBodyComponentParams"},{"$ref":"#/components/schemas/WhatsAppTemplateButtonComponentParams"}],"discriminator":{"propertyName":"type","mapping":{"body":"#/components/schemas/WhatsAppTemplateBodyComponentParams","button":"#/components/schemas/WhatsAppTemplateButtonComponentParams","header":"#/components/schemas/WhatsAppTemplateHeaderComponentParams"}}},"title":"Template Params"},"agent_id":{"type":"string","title":"Agent Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"required":["whatsapp_phone_number_id","whatsapp_user_id","template_name","template_language_code","template_params","agent_id"],"title":"Body_Send_an_outbound_message_via_WhatsApp_v1_convai_whatsapp_outbound_message_post"},"Body_Set_rules_on_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__set_rules_post":{"type":"object","properties":{"rules":{"description":"List of pronunciation rules. Rule can be either:\n an alias rule: {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b', }\n or a phoneme rule: {'string_to_replace': 'a', 'type': 'phoneme', 'phoneme': 'b', 'alphabet': 'ipa' }","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleRequestModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleRequestModel"}]},"examples":["\n [\n {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b' },\n {'string_to_replace': 'c', 'type': 'phoneme', 'phoneme': 'd', 'alphabet': 'ipa' }\n ]"],"title":"Rules"}},"required":["rules"],"title":"Body_Set_rules_on_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__set_rules_post"},"Body_Set_workspace_Third_Party_Disabling_policy_v1_workspaces_api_keys_third_party_disabling_post":{"type":"object","properties":{"third_party_disable_allowed":{"description":"`true` forces every key in the workspace to be disable-able by its holder; `false` forbids it for every key; `null` clears the override (per-key values and the plan default apply).","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Third Party Disable Allowed"}},"title":"Body_Set_workspace_Third_Party_Disabling_policy_v1_workspaces_api_keys_third_party_disabling_post"},"Body_Share_workspace_resource_v1_workspace_resources__resource_id__share_post":{"type":"object","properties":{"role":{"description":"Role to grant to the target: one of 'admin', 'editor', 'commenter', or 'viewer'.","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Role"},"resource_type":{"description":"Resource type of the target resource.","$ref":"#/components/schemas/WorkspaceResourceType"},"user_email":{"description":"The email of the user or service account.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"group_id":{"description":"The ID of the target group. Use 'default' to set the resource's baseline role — every workspace member receives this role unless they hold a higher one through a direct user grant, group membership, or workspace (service account) API key.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"},"workspace_api_key_id":{"description":"The ID of the target workspace (service account) API key. This is not the API key string itself that you pass in the header for authentication — it is the key's ID, which workspace admins can find under Developers → Service Accounts.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Api Key Id"}},"required":["role","resource_type"],"title":"Body_Share_workspace_resource_v1_workspace_resources__resource_id__share_post"},"Body_Simulates_a_conversation__Stream__v1_convai_agents__agent_id__simulate_conversation_stream_post":{"type":"object","properties":{"simulation_specification":{"description":"A specification detailing how the conversation should be simulated","$ref":"#/components/schemas/ConversationSimulationSpecification"},"extra_evaluation_criteria":{"description":"A list of evaluation criteria to test","anyOf":[{"items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"type":"array"},{"type":"null"}],"title":"Extra Evaluation Criteria"},"new_turns_limit":{"description":"Maximum number of new turns to generate in the conversation simulation","type":"integer","default":10000,"title":"New Turns Limit"}},"required":["simulation_specification"],"title":"Body_Simulates_a_conversation__Stream__v1_convai_agents__agent_id__simulate_conversation_stream_post"},"Body_Simulates_a_conversation_v1_convai_agents__agent_id__simulate_conversation_post":{"type":"object","properties":{"simulation_specification":{"description":"A specification detailing how the conversation should be simulated","$ref":"#/components/schemas/ConversationSimulationSpecification"},"extra_evaluation_criteria":{"description":"A list of evaluation criteria to test","anyOf":[{"items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"type":"array"},{"type":"null"}],"title":"Extra Evaluation Criteria"},"new_turns_limit":{"description":"Maximum number of new turns to generate in the conversation simulation","type":"integer","default":10000,"title":"New Turns Limit"}},"required":["simulation_specification"],"title":"Body_Simulates_a_conversation_v1_convai_agents__agent_id__simulate_conversation_post"},"Body_Sound_Generation_v1_sound_generation_post":{"type":"object","properties":{"text":{"description":"The text that will get converted into a sound effect.","type":"string","examples":["A large, ancient wooden door slowly opening in an eerie, abandoned castle.."],"title":"Text"},"loop":{"description":"Whether to create a sound effect that loops smoothly. Only available for the 'eleven_text_to_sound_v2 model'.","type":"boolean","default":false,"title":"Loop"},"duration_seconds":{"description":"The duration of the sound which will be generated in seconds. Must be at least 0.5 and at most 30. If set to None we will guess the optimal duration using the prompt. Defaults to None.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"prompt_influence":{"description":"A higher prompt influence makes your generation follow the prompt more closely while also making generations less variable. Must be a value between 0 and 1. Defaults to 0.3.","default":0.3,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Prompt Influence"},"model_id":{"description":"The model ID to use for the sound generation.","type":"string","default":"eleven_text_to_sound_v2","examples":["eleven_text_to_sound_v2"],"title":"Model Id"}},"required":["text"],"title":"Body_Sound_Generation_v1_sound_generation_post","x-fern-type-name":"CreateSoundEffectRequest"},"Body_Speech_to_Speech_Streaming_v1_speech_to_speech__voice_id__stream_post":{"type":"object","properties":{"audio":{"description":"The audio file which holds the content and emotion that will control the generated speech.","type":"string","format":"binary","title":"Audio"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for speech to speech, you can check this using the can_do_voice_conversion property.","type":"string","default":"eleven_english_sts_v2","title":"Model Id"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request. Needs to be send as a JSON encoded string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Settings"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"remove_background_noise":{"description":"If set, will remove the background noise from your audio input using our audio isolation model. Only applies to Voice Changer.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"}},"required":["audio"],"title":"Body_Speech_to_Speech_Streaming_v1_speech_to_speech__voice_id__stream_post","x-fern-type-name":"SpeechToSpeechStreamRequest"},"Body_Speech_to_Speech_v1_speech_to_speech__voice_id__post":{"type":"object","properties":{"audio":{"description":"The audio file which holds the content and emotion that will control the generated speech.","type":"string","format":"binary","title":"Audio"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for speech to speech, you can check this using the can_do_voice_conversion property.","type":"string","default":"eleven_english_sts_v2","title":"Model Id"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request. Needs to be send as a JSON encoded string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Settings"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"remove_background_noise":{"description":"If set, will remove the background noise from your audio input using our audio isolation model. Only applies to Voice Changer.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"}},"required":["audio"],"title":"Body_Speech_to_Speech_v1_speech_to_speech__voice_id__post","x-fern-type-name":"SpeechToSpeechRequest"},"Body_Speech_to_Text_v1_speech_to_text_post":{"type":"object","properties":{"model_id":{"description":"The ID of the model to use for transcription.","type":"string","enum":["scribe_v2","scribe_v1"],"title":"Model Id"},"file":{"description":"The file to transcribe (100ms minimum audio length). All major audio and video formats are supported. Exactly one of the file or cloud_storage_url parameters must be provided. The file size must be less than 5.0GB.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"language_code":{"description":"An ISO-639-1 or ISO-639-3 language_code corresponding to the language of the audio file. Can sometimes improve transcription performance if known beforehand. Defaults to null, in this case the language is predicted automatically.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"tag_audio_events":{"description":"Whether to tag audio events like (laughter), (footsteps), etc. in the transcription.","type":"boolean","default":true,"title":"Tag Audio Events"},"num_speakers":{"description":"The maximum amount of speakers talking in the uploaded file. Can help with predicting who speaks when. The maximum amount of speakers that can be predicted is 32. Defaults to null, in this case the amount of speakers is set to the maximum value the model supports.","anyOf":[{"type":"integer","maximum":32,"minimum":1},{"type":"null"}],"title":"Num Speakers"},"timestamps_granularity":{"description":"The granularity of the timestamps in the transcription. 'word' provides word-level timestamps and 'character' provides character-level timestamps per word.","type":"string","default":"word","enum":["none","word","character"],"title":"Timestamps Granularity"},"diarize":{"description":"Whether to annotate which speaker is currently talking in the uploaded file.","type":"boolean","default":false,"title":"Diarize"},"diarization_threshold":{"description":"Diarization threshold to apply during speaker diarization. A higher value means there will be a lower chance of one speaker being diarized as two different speakers but also a higher chance of two different speakers being diarized as one speaker (less total speakers predicted). A low value means there will be a higher chance of one speaker being diarized as two different speakers but also a lower chance of two different speakers being diarized as one speaker (more total speakers predicted). Can only be set when diarize=True and num_speakers=None. Defaults to None, in which case we will choose a threshold based on the model_id (0.22 usually).","anyOf":[{"type":"number","maximum":0.4,"minimum":0.1},{"type":"null"}],"title":"Diarization Threshold"},"additional_formats":{"description":"A list of additional formats to export the transcript to.","$ref":"#/components/schemas/AdditionalFormats","examples":[[{"format":"srt","include_speakers":true,"include_timestamps":true},{"format":"txt","include_speakers":false}]]},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","type":"string","default":"other","enum":["pcm_s16le_16","other"],"examples":["pcm_s16le_16","other"],"title":"File Format"},"cloud_storage_url":{"description":"[Deprecated] This parameter is deprecated and will be removed in the future. Use 'source_url' instead.The HTTPS URL of the file to transcribe. Exactly one of the file or cloud_storage_url parameters must be provided. The file must be accessible via HTTPS and the file size must be less than 2GB. Any valid HTTPS URL is accepted, including URLs from cloud storage providers (AWS S3, Google Cloud Storage, Cloudflare R2, etc.), CDNs, or any other HTTPS source. URLs can be pre-signed or include authentication tokens in query parameters.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"examples":["https://storage.googleapis.com/my-bucket/folder/audio.mp3","https://my-bucket.s3.us-west-2.amazonaws.com/folder/audio.mp3","https://account123.r2.cloudflarestorage.com/my-bucket/audio.mp3","https://cdn.example.com/media/audio.wav"],"title":"Cloud Storage Url","x-fern-ignore":false,"x-fern-audiences":["undocumented"]},"source_url":{"description":"The URL of an audio or video file to transcribe. Supports hosted video or audio files, YouTube video URLs, TikTok video URLs, and other video hosting services.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://storage.googleapis.com/my-bucket/folder/audio.mp3","https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.tiktok.com/@barstoolsports/video/7285745795779939614"],"title":"Source Url"},"webhook":{"description":"Whether to send the transcription result to configured speech-to-text webhooks. If set the request will return early without the transcription, which will be delivered later via webhook.","type":"boolean","default":false,"title":"Webhook"},"webhook_id":{"description":"Optional specific webhook ID to send the transcription result to. Only valid when webhook is set to true. If not provided, transcription will be sent to all configured speech-to-text webhooks.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Id"},"temperature":{"description":"Controls the randomness of the transcription output. Accepts values between 0.0 and 2.0, where higher values result in more diverse and less deterministic results. If omitted, we will use a temperature based on the model you selected which is usually 0.","anyOf":[{"type":"number","maximum":2,"minimum":0},{"type":"null"}],"title":"Temperature"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be an integer between 0 and 2147483647.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[12345],"title":"Seed"},"use_multi_channel":{"description":"Whether the audio file contains multiple channels where each channel contains a single speaker. When enabled, each channel is transcribed independently. By default a separate transcript is returned per channel; set multichannel_output_style='combined' to instead receive a single transcript with all channels merged and sorted by time. Each word in the response includes a 'channel_index' field indicating which channel it was spoken on. A maximum of 5 channels is supported. Each channel is billed independently at the full audio duration, so cost scales linearly with the number of channels.","type":"boolean","default":false,"title":"Use Multi Channel"},"multichannel_output_style":{"description":"Controls the response shape when use_multi_channel is enabled. 'separate' (default) returns one transcript per channel under 'transcripts'. 'combined' merges all channels into a single transcript whose words are sorted by start time, each carrying a 'channel_index' - matching the single-channel response shape. 'combined' requires timestamps (timestamps_granularity must not be 'none') and does not support entity detection or redaction.","type":"string","default":"separate","enum":["separate","combined"],"title":"Multichannel Output Style"},"webhook_metadata":{"description":"Optional metadata to be included in the webhook response. This should be a JSON string representing an object with a maximum depth of 2 levels and maximum size of 16KB. Useful for tracking internal IDs, job references, or other contextual information.","anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"examples":["{\"user_id\": \"123\", \"session_id\": \"abc-def-ghi\"}","{\"request_type\": \"interview\", \"participant_name\": \"John Doe\"}"],"title":"Webhook Metadata"},"entity_detection":{"description":"Detect entities in the transcript. Can be 'all' to detect all entities, a single entity type or category string, or a list of entity types/categories. Categories include 'pii', 'phi', 'pci', 'other', 'offensive_language'. When enabled, detected entities will be returned in the 'entities' field with their text, type, and character positions. Usage of this parameter will incur an additional 30% surcharge on the base transcription cost.","anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Entity Detection"},"no_verbatim":{"description":"If true, the transcription will not have any filler words, false starts and non-speech sounds. Only supported with scribe_v2 model.","type":"boolean","default":false,"title":"No Verbatim"},"use_speaker_library":{"description":"Whether to use the speaker library for identifying known speakers during diarization. When enabled and diarize is true, detected speakers will be matched against registered speakers in the workspace's speaker library.","type":"boolean","default":false,"title":"Use Speaker Library"},"detect_speaker_roles":{"description":"Whether to detect speaker roles (agent vs customer). Requires diarize=true. Cannot be used with use_multi_channel=true. When enabled, speaker_id values will be 'agent' and 'customer' instead of 'speaker_0', 'speaker_1', etc. Usage incurs an additional 10% surcharge on base transcription cost.","type":"boolean","default":false,"title":"Detect Speaker Roles"},"entity_redaction":{"description":"Redact entities from the transcript text. Accepts the same format as entity_detection: 'all', a category ('pii', 'phi'), or specific entity types. Must be a subset of entity_detection. When redaction is enabled, the entities field will not be returned. Usage of this parameter will incur an additional 30% surcharge on the base transcription cost.","anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Entity Redaction"},"entity_redaction_mode":{"description":"How to format redacted entities. 'redacted' replaces with {REDACTED}, 'entity_type' replaces with {ENTITY_TYPE}, 'enumerated_entity_type' replaces with {ENTITY_TYPE_N} where N enumerates each occurrence. Only used when entity_redaction is set.","type":"string","default":"enumerated_entity_type","title":"Entity Redaction Mode"},"keyterms":{"description":"A list of keyterms to bias the transcription towards. The keyterms are words or phrases you want the model to recognise more accurately. The number of keyterms cannot exceed 1000. The length of each keyterm must be less than 50 characters. Keyterms can contain at most 5 words (after normalisation). For example [\"hello\", \"world\", \"technical term\"]. The following characters are not supported: `<`, `>`, `{`, `}`, `[`, `]`, `\\`. Usage of this parameter will incur an additional 20% surcharge on the base transcription cost. When more than 100 keyterms are provided, a minimum billable duration of 20 seconds applies per request.","type":"array","items":{"type":"string"},"default":[],"title":"Keyterms"}},"required":["model_id"],"title":"Body_Speech_to_Text_v1_speech_to_text_post"},"Body_Stem_separation_v1_music_stem_separation_post":{"type":"object","properties":{"file":{"description":"The audio file to separate into stems.","type":"string","format":"binary","title":"File"},"stem_variation_id":{"description":"The id of the stem variation to use.","type":"string","default":"six_stems_v1","enum":["two_stems_v1","six_stems_v1"],"title":"Stem Variation Id"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"}},"required":["file"],"title":"Body_Stem_separation_v1_music_stem_separation_post"},"Body_Stream_Studio_project_audio_v1_studio_projects__project_id__snapshots__project_snapshot_id__stream_post":{"type":"object","properties":{"convert_to_mpeg":{"description":"Whether to convert the audio to mpeg format.","type":"boolean","default":false,"title":"Convert To Mpeg"}},"title":"Body_Stream_Studio_project_audio_v1_studio_projects__project_id__snapshots__project_snapshot_id__stream_post"},"Body_Stream_chapter_audio_v1_studio_projects__project_id__chapters__chapter_id__snapshots__chapter_snapshot_id__stream_post":{"type":"object","properties":{"convert_to_mpeg":{"description":"Whether to convert the audio to mpeg format.","type":"boolean","default":false,"title":"Convert To Mpeg"}},"title":"Body_Stream_chapter_audio_v1_studio_projects__project_id__chapters__chapter_id__snapshots__chapter_snapshot_id__stream_post"},"Body_Stream_composed_music_v1_music_stream_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength"},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"}},"title":"Body_Stream_composed_music_v1_music_stream_post"},"Body_Stream_composed_music_with_a_detailed_response_v1_music_detailed_stream_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength"},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"},"with_timestamps":{"description":"Whether to return the timestamps of the words in the generated song.","type":"boolean","default":false,"title":"With Timestamps"}},"title":"Body_Stream_composed_music_with_a_detailed_response_v1_music_detailed_stream_post"},"Body_Submit_a_batch_call_request__v1_convai_batch_calling_submit_post":{"type":"object","properties":{"call_name":{"type":"string","title":"Call Name"},"agent_id":{"type":"string","title":"Agent Id"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/OutboundCallRecipient"},"maxItems":10000,"title":"Recipients"},"scheduled_time_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scheduled Time Unix"},"agent_phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Phone Number Id"},"whatsapp_params":{"anyOf":[{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"},"target_concurrency_limit":{"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Target Concurrency Limit"}},"required":["call_name","agent_id","recipients"],"title":"Body_Submit_a_batch_call_request__v1_convai_batch_calling_submit_post"},"Body_Text_to_dialogue__multi_voice__streaming_v1_text_to_dialogue_stream_post":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_Text_to_dialogue__multi_voice__streaming_v1_text_to_dialogue_stream_post"},"Body_Text_to_dialogue__multi_voice__v1_text_to_dialogue_post":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_Text_to_dialogue__multi_voice__v1_text_to_dialogue_post"},"Body_Transcribes_segments_v1_dubbing_resource__dubbing_id__transcribe_post":{"type":"object","properties":{"segments":{"description":"Transcribe this specific list of segments.","type":"array","items":{"type":"string"},"title":"Segments"}},"required":["segments"],"title":"Body_Transcribes_segments_v1_dubbing_resource__dubbing_id__transcribe_post"},"Body_Translates_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__translate_post":{"type":"object","properties":{"segments":{"description":"Translate only this list of segments.","type":"array","items":{"type":"string"},"title":"Segments"},"languages":{"description":"Translate only these languages for each segment.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"}},"required":["segments","languages"],"title":"Body_Translates_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__translate_post"},"Body_Unshare_workspace_resource_v1_workspace_resources__resource_id__unshare_post":{"type":"object","properties":{"resource_type":{"description":"Resource type of the target resource.","$ref":"#/components/schemas/WorkspaceResourceType"},"user_email":{"description":"The email of the user or service account.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"group_id":{"description":"The ID of the target group. Use 'default' to set the resource's baseline role — every workspace member receives this role unless they hold a higher one through a direct user grant, group membership, or workspace (service account) API key.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"},"workspace_api_key_id":{"description":"The ID of the target workspace (service account) API key. This is not the API key string itself that you pass in the header for authentication — it is the key's ID, which workspace admins can find under Developers → Service Accounts.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Api Key Id"}},"required":["resource_type"],"title":"Body_Unshare_workspace_resource_v1_workspace_resources__resource_id__unshare_post"},"Body_Update_PVC_voice_sample_v1_voices_pvc__voice_id__samples__sample_id__post":{"type":"object","properties":{"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"selected_speaker_ids":{"description":"Speaker IDs to be used for PVC training. Make sure you send all the speaker IDs you want to use for PVC training in one request because the last request will override the previous ones.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":["speaker_0"],"title":"Selected Speaker Ids"},"trim_start_time":{"description":"The start time of the audio to be used for PVC training. Time should be in milliseconds","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[0],"title":"Trim Start Time"},"trim_end_time":{"description":"The end time of the audio to be used for PVC training. Time should be in milliseconds","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[10],"title":"Trim End Time"},"file_name":{"description":"The name of the audio file to be used for PVC training.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["sample.mp3"],"title":"File Name"}},"title":"Body_Update_PVC_voice_sample_v1_voices_pvc__voice_id__samples__sample_id__post"},"Body_Update_Studio_project_content_v1_studio_projects__project_id__content_post":{"type":"object","properties":{"from_url":{"description":"An optional URL from which we will extract content to initialize the Studio project. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://blog.elevenlabs.io/the_first_ai_that_can_laugh/"],"title":"From Url"},"from_document":{"description":"An optional .epub, .pdf, .txt or similar file can be provided. If provided, we will initialize the Studio project with its content. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"From Document"},"from_content_json":{"description":"\n An optional content to initialize the Studio project with. If this is set, 'from_url' and 'from_document' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.\n\n Example:\n [{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]\n ","type":"string","examples":["[{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]"],"title":"From Content Json"},"auto_convert":{"description":"Whether to auto convert the Studio project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"}},"title":"Body_Update_Studio_project_content_v1_studio_projects__project_id__content_post"},"Body_Update_Studio_project_v1_studio_projects__project_id__post":{"type":"object","properties":{"name":{"description":"The name of the Studio project, used for identification only.","type":"string","examples":["Project 1"],"title":"Name"},"default_title_voice_id":{"description":"The voice_id that corresponds to the default voice used for new titles.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The voice_id that corresponds to the default voice used for new paragraphs.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Paragraph Voice Id"},"title":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Romeo and Juliet"],"title":"Title"},"author":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["William Shakespeare"],"title":"Author"},"isbn_number":{"description":"An optional ISBN number of the Studio project you want to create, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["0-306-40615-2"],"title":"Isbn Number"},"volume_normalization":{"description":"When the Studio project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements","type":"boolean","default":false,"examples":[false],"title":"Volume Normalization"}},"required":["name","default_title_voice_id","default_paragraph_voice_id"],"title":"Body_Update_Studio_project_v1_studio_projects__project_id__post"},"Body_Update_agent_branch_v1_convai_agents__agent_id__branches__branch_id__patch":{"type":"object","properties":{"name":{"description":"New name for the branch. Must be unique within the agent.","anyOf":[{"type":"string","maxLength":140,"minLength":1},{"type":"null"}],"title":"Name"},"is_archived":{"description":"Whether the branch should be archived","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Archived"},"protection_status":{"description":"The protection level for the branch","anyOf":[{"$ref":"#/components/schemas/BranchProtectionStatus"},{"type":"null"}]}},"title":"Body_Update_agent_branch_v1_convai_agents__agent_id__branches__branch_id__patch"},"Body_Update_agent_test_folder_v1_convai_agent_testing_folders__folder_id__patch":{"type":"object","properties":{"name":{"description":"The new name for the folder","type":"string","title":"Name"}},"required":["name"],"title":"Body_Update_agent_test_folder_v1_convai_agent_testing_folders__folder_id__patch"},"Body_Update_audio_native_Project_content_v1_audio_native__project_id__content_post":{"type":"object","properties":{"file":{"description":"Either txt or HTML input file containing the article content. HTML should be formatted as follows '<html><body><div><p>Your content</p><h5>More of your content</h5><p>Some more of your content</p></div></body></html>'","type":"string","format":"binary","title":"File"},"auto_convert":{"description":"Whether to auto convert the project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"},"auto_publish":{"description":"Whether to auto publish the new project snapshot after it's converted.","type":"boolean","default":false,"title":"Auto Publish"}},"title":"Body_Update_audio_native_Project_content_v1_audio_native__project_id__content_post"},"Body_Update_audio_native_content_from_URL_v1_audio_native_content_post":{"type":"object","properties":{"url":{"description":"URL of the page to extract content from.","type":"string","examples":["https://elevenlabs.io/blog/the_first_ai_that_can_laugh/"],"title":"Url"},"author":{"description":"Author used in the player and inserted at the start of the uploaded article. If not provided, the default author set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"title":{"description":"Title used in the player and inserted at the top of the uploaded article. If not provided, the default title set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"required":["url"],"title":"Body_Update_audio_native_content_from_URL_v1_audio_native_content_post"},"Body_Update_chapter_v1_studio_projects__project_id__chapters__chapter_id__post":{"type":"object","properties":{"name":{"description":"The name of the chapter, used for identification only.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Chapter 1"],"title":"Name"},"content":{"anyOf":[{"$ref":"#/components/schemas/ChapterContentInputModel"},{"type":"null"}],"description":"The chapter content to use."}},"title":"Body_Update_chapter_v1_studio_projects__project_id__chapters__chapter_id__post"},"Body_Update_document_v1_convai_knowledge_base__documentation_id__patch":{"type":"object","properties":{"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Updated content for the document. Only supported for text documents, URL documents with auto-sync disabled, and file documents.","title":"Content"}},"title":"Body_Update_document_v1_convai_knowledge_base__documentation_id__patch"},"Body_Update_file_document_v1_convai_knowledge_base__documentation_id__update_file_patch":{"type":"object","properties":{"file":{"description":"Documentation that the agent will have access to in order to interact with users.","type":"string","format":"binary","title":"File"}},"required":["file"],"title":"Body_Update_file_document_v1_convai_knowledge_base__documentation_id__update_file_patch"},"Body_Update_member_v1_workspace_members_post":{"type":"object","properties":{"email":{"description":"Email of the target user.","type":"string","title":"Email"},"is_locked":{"description":"Whether to lock or unlock the user account.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Locked"},"workspace_role":{"description":"The workspace role of the user. This is deprecated, use `workspace_seat_type` instead.","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}],"deprecated":true,"examples":["workspace_admin","workspace_member"]},"workspace_seat_type":{"description":"The workspace seat type","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}]}},"required":["email"],"title":"Body_Update_member_v1_workspace_members_post","x-fern-type-name":"UpdateMemberRequest"},"Body_Update_metadata_for_a_speaker_v1_dubbing_resource__dubbing_id__speaker__speaker_id__patch":{"type":"object","properties":{"speaker_name":{"description":"Name to attribute to this speaker.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Name"},"voice_id":{"description":"Either the identifier of a voice from the ElevenLabs voice library, or one of ['track-clone', 'clip-clone'].","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_stability":{"description":"For models that support it, the voice similarity value to use. This will default to 0.65, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Stability"},"voice_similarity":{"description":"For models that support it, the voice similarity value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Similarity"},"voice_style":{"description":"For models that support it, the voice style value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Style"},"languages":{"description":"Languages to apply these changes to. If empty, will apply to all languages.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"}},"title":"Body_Update_metadata_for_a_speaker_v1_dubbing_resource__dubbing_id__speaker__speaker_id__patch"},"Body_Update_order_v1_productions_orders__order_id__patch":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/UpdateOrderRequest"}},"required":["request"],"title":"Body_Update_order_v1_productions_orders__order_id__patch"},"Body_Update_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__patch":{"type":"object","properties":{"archived":{"description":"Whether to archive the pronunciation dictionary.","type":"boolean","examples":[true],"title":"Archived"},"name":{"description":"The name of the pronunciation dictionary, used for identification only.","type":"string","examples":["My Dictionary"],"title":"Name"}},"title":"Body_Update_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__patch"},"Body_Update_workspace_webhook_v1_workspace_webhooks__webhook_id__patch":{"type":"object","properties":{"is_disabled":{"description":"Whether to disable or enable the webhook","type":"boolean","examples":[true],"title":"Is Disabled"},"name":{"description":"The display name of the webhook (used for display purposes only).","type":"string","examples":["My Callback Webhook"],"title":"Name"},"retry_enabled":{"description":"Whether to enable automatic retries for transient failures (5xx, 429, timeout)","anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Retry Enabled"},"request_headers":{"description":"A list of request headers to include with the webhook delivery (optional)","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Request Headers"},"events":{"description":"The complete set of workspace-level events this webhook should be subscribed to. The webhook is added to the events in the list and removed from any not in the list. Omit to leave the current event subscriptions unchanged.","anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceWebhookEventType"},"type":"array"},{"type":"null"}],"examples":[["voice_library_removal_notice","speech_to_text"]],"title":"Events"}},"required":["is_disabled","name"],"title":"Body_Update_workspace_webhook_v1_workspace_webhooks__webhook_id__patch"},"Body_Upload_file_v1_convai_conversations__conversation_id__files_post":{"type":"object","properties":{"file":{"description":"Image or PDF file to upload","type":"string","format":"binary","title":"File"}},"required":["file"],"title":"Body_Upload_file_v1_convai_conversations__conversation_id__files_post"},"Body_Upload_music_v1_music_upload_post":{"type":"object","properties":{"file":{"description":"The audio file to upload.","type":"string","format":"binary","title":"File"},"extract_composition_plan":{"description":"Whether to generate and return the composition plan for the uploaded song. Pass a model id (`music_v1` or `music_v2`) to control which composition plan format is returned. Passing `true`/`false` is deprecated; `true` defaults to the `music_v1` plan format. Enabling this will increase the latency.","default":false,"enum":[true,false,"music_v1","music_v2"],"anyOf":[{"type":"boolean"},{"type":"string"}],"title":"Extract Composition Plan"},"with_timestamps":{"description":"Whether to transcribe the uploaded song and return word-level timestamps. If True, the response will include words_timestamps but will increase the latency.","type":"boolean","default":false,"title":"With Timestamps"}},"required":["file"],"title":"Body_Upload_music_v1_music_upload_post"},"Body_Upsert_order_item_v1_productions_orders__order_id__items_post":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/UpsertOrderItemRequest"}},"required":["request"],"title":"Body_Upsert_order_item_v1_productions_orders__order_id__items_post"},"Body_Verify_PVC_voice_captcha_v1_voices_pvc__voice_id__captcha_post":{"type":"object","properties":{"recording":{"description":"Audio recording of the user","type":"string","format":"binary","title":"Recording"}},"required":["recording"],"title":"Body_Verify_PVC_voice_captcha_v1_voices_pvc__voice_id__captcha_post"},"Body_Video_to_Music_v1_music_video_to_music_post":{"type":"object","properties":{"videos":{"description":"\n One or more video files sent via FormData array (multipart/form-data). They will be combined into one codec in order.\n A maximum of 10 videos is allowed, where the total size of the combined video is limited to 200MB.\n In total, the video can be up to 600 seconds long. Note that combining multiple videos may increase the request duration significantly. If possible, combine the videos beforehand.\n ","type":"array","items":{"type":"string","format":"binary"},"maxItems":10,"minItems":1,"title":"Videos"},"description":{"description":"Optional text description of the music you want. A maximum of 1000 characters is allowed.","anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"title":"Description"},"tags":{"description":"Optional list of style tags (e.g. ['upbeat', 'cinematic']). A maximum of 10 tags is allowed.","type":"array","items":{"type":"string"},"default":[],"maxItems":10,"minItems":0,"title":"Tags"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"}},"required":["videos"],"title":"Body_Video_to_Music_v1_music_video_to_music_post"},"Body_create_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys_post":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"permissions":{"description":"The permissions of the XI API.","anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"string","const":"all"}],"title":"Permissions"},"character_limit":{"description":"The character limit of the XI API key. If provided this will limit the usage of this api key to n characters per month where n is the chosen value. Requests that incur charges will fail after reaching this monthly limit.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Limit"},"allowed_ips":{"description":"List of IP addresses or CIDR ranges allowed to use this API key. Each entry may be a CIDR range (e.g. '10.0.0.0/24') or a bare IP address (normalized to /32 or /128). On create, omit or pass null to allow all IPs. On update, omit to leave the allowlist unchanged, or pass \"clear\" to remove it.","anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1},{"type":"null"}],"title":"Allowed Ips"},"third_party_disable_allowed":{"description":"Whether the holder of this key may disable it via the self-disable endpoint. On create, omit or pass null to use the workspace's default (enabled for non-Enterprise plans, disabled for Enterprise plans). On update, omit to leave it unchanged, or pass \"clear\" to reset it to the workspace default. Only honored for workspaces with self-disable access enabled.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Third Party Disable Allowed"}},"required":["name","permissions"],"title":"Body_create_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys_post"},"Body_create_service_account_v1_service_accounts_post":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"default_sharing_groups":{"description":"List of groups with their permission levels to share with by default. Each entry should specify a group_id and a permission_level (admin, editor, or viewer).","anyOf":[{"items":{"$ref":"#/components/schemas/DefaultSharingGroupConfig"},"type":"array"},{"type":"null"}],"title":"Default Sharing Groups"}},"required":["name"],"title":"Body_create_service_account_v1_service_accounts_post"},"Body_edit_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys__api_key_id__patch":{"type":"object","properties":{"is_enabled":{"description":"Whether to enable or disable the API key.","default":"no_update","anyOf":[{"type":"boolean"},{"type":"string","const":"no_update"}],"title":"Is Enabled"},"name":{"description":"The name of the XI API key to use (used for identification purposes only).","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Sneaky Fox"],"title":"Name"},"permissions":{"description":"The permissions of the XI API.","default":"no_update","anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"string","enum":["all","no_update"]}],"title":"Permissions"},"character_limit":{"description":"The character limit of the XI API key. If provided this will limit the usage of this api key to n characters per month where n is the chosen value. Requests that incur charges will fail after reaching this monthly limit.","default":"no_update","anyOf":[{"type":"integer"},{"type":"string","enum":["clear","no_update"]},{"type":"null"}],"title":"Character Limit"},"allowed_ips":{"description":"List of IP addresses or CIDR ranges allowed to use this API key. Each entry may be a CIDR range (e.g. '10.0.0.0/24') or a bare IP address (normalized to /32 or /128). On create, omit or pass null to allow all IPs. On update, omit to leave the allowlist unchanged, or pass \"clear\" to remove it.","default":"no_update","anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1},{"type":"string","enum":["clear","no_update"]}],"title":"Allowed Ips"},"third_party_disable_allowed":{"description":"Whether the holder of this key may disable it via the self-disable endpoint. On create, omit or pass null to use the workspace's default (enabled for non-Enterprise plans, disabled for Enterprise plans). On update, omit to leave it unchanged, or pass \"clear\" to reset it to the workspace default. Only honored for workspaces with self-disable access enabled.","default":"no_update","anyOf":[{"type":"boolean"},{"type":"string","enum":["clear","no_update"]}],"title":"Third Party Disable Allowed"}},"title":"Body_edit_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys__api_key_id__patch"},"Body_text_to_dialogue_full_with_timestamps":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_text_to_dialogue_full_with_timestamps"},"Body_text_to_dialogue_stream_with_timestamps":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_text_to_dialogue_stream_with_timestamps"},"Body_text_to_speech_full":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_full"},"Body_text_to_speech_full_with_timestamps":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","type":"array","items":{"type":"string"},"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","type":"array","items":{"type":"string"},"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_full_with_timestamps"},"Body_text_to_speech_stream":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_stream"},"Body_text_to_speech_stream_with_timestamps":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_stream_with_timestamps"},"BranchProtectionStatus":{"type":"string","default":"writer_perms_required","enum":["writer_perms_required","admin_perms_required"],"title":"BranchProtectionStatus"},"BreakdownTypes":{"description":"How to break down the information. Cannot be \"user\" or \"api_key\" if include_workspace_metrics is False.","type":"string","enum":["none","voice","voice_multiplier","user","groups","api_keys","all_api_keys","product_type","model","resource","request_queue","region","subresource_id","reporting_workspace_id","has_api_key","request_source"],"title":"BreakdownTypes"},"BucketingStatus":{"type":"string","enum":["pending","completed","failed"],"title":"BucketingStatus"},"BuiltInTools-Input":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]}},"title":"BuiltInTools"},"BuiltInTools-Output":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]}},"title":"BuiltInTools"},"BuiltInToolsWorkflowOverride-Input":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]}},"title":"BuiltInToolsWorkflowOverride"},"BuiltInToolsWorkflowOverride-Output":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]}},"title":"BuiltInToolsWorkflowOverride"},"CancelCalendarEventParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"cancel_calendar_event","const":"cancel_calendar_event","title":"Smb Tool Type"}},"title":"CancelCalendarEventParams"},"CancelGroupSessionForAllParams":{"description":"Cancel an entire group session and notify every registered participant.\nDestructive -- prefer ``cancel_group_session_registration`` for cancelling\na single attendee.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"cancel_group_session_for_all","const":"cancel_group_session_for_all","title":"Smb Tool Type"}},"title":"CancelGroupSessionForAllParams"},"CancelGroupSessionRegistrationParams":{"description":"Cancel a single client's registration for a group session.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"cancel_group_session_registration","const":"cancel_group_session_registration","title":"Smb Tool Type"}},"title":"CancelGroupSessionRegistrationParams"},"CanvasPlacement":{"description":"Defines asset positioning and transformation on canvas.","type":"object","properties":{"x_relative":{"type":"number","default":0.5,"title":"X Relative"},"y_relative":{"type":"number","default":0.5,"title":"Y Relative"},"scale_x":{"type":"number","default":1,"title":"Scale X"},"scale_y":{"type":"number","default":1,"title":"Scale Y"},"pivot_x":{"type":"number","default":0,"title":"Pivot X"},"pivot_y":{"type":"number","default":0,"title":"Pivot Y"},"skew_x":{"type":"number","default":0,"title":"Skew X"},"skew_y":{"type":"number","default":0,"title":"Skew Y"},"crop_top":{"type":"number","default":0,"title":"Crop Top"},"crop_right":{"type":"number","default":0,"title":"Crop Right"},"crop_bottom":{"type":"number","default":0,"title":"Crop Bottom"},"crop_left":{"type":"number","default":0,"title":"Crop Left"},"flip_x":{"type":"boolean","default":false,"title":"Flip X"},"flip_y":{"type":"boolean","default":false,"title":"Flip Y"}},"title":"CanvasPlacement"},"CaptionStyleCharacterAnimationModel":{"type":"object","properties":{"enter_type":{"type":"string","enum":["none","fade","typewriter"],"title":"Enter Type"},"exit_type":{"type":"string","enum":["none","fade"],"title":"Exit Type"}},"required":["enter_type","exit_type"],"title":"CaptionStyleCharacterAnimationModel"},"CaptionStyleHorizontalPlacementModel":{"type":"object","properties":{"align":{"type":"string","enum":["left","center","right"],"title":"Align"},"translate_pct":{"type":"number","title":"Translate Pct"}},"required":["align","translate_pct"],"title":"CaptionStyleHorizontalPlacementModel"},"CaptionStyleModel":{"type":"object","properties":{"template":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleTemplateModel"},{"type":"null"}]},"text_font":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Font"},"text_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Text Scale"},"text_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Color"},"text_align":{"anyOf":[{"type":"string","enum":["start","center","end"]},{"type":"null"}],"title":"Text Align"},"text_style":{"anyOf":[{"type":"string","enum":["normal","italic"]},{"type":"null"}],"title":"Text Style"},"text_weight":{"anyOf":[{"type":"string","enum":["normal","bold","900"]},{"type":"null"}],"title":"Text Weight"},"text_transform":{"anyOf":[{"type":"string","enum":["none","uppercase"]},{"type":"null"}],"title":"Text Transform"},"text_blend_mode":{"anyOf":[{"type":"string","enum":["normal","difference","multiply"]},{"type":"null"}],"title":"Text Blend Mode"},"text_shadow":{"anyOf":[{"$ref":"#/components/schemas/StudioTextStyleShadowModel"},{"type":"null"}]},"text_outline":{"anyOf":[{"$ref":"#/components/schemas/StudioTextStyleOutlineModel"},{"type":"null"}]},"background_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Background Enabled"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"background_opacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Background Opacity"},"background_blur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Background Blur"},"background_border_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Background Border Radius"},"word_highlights_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Word Highlights Enabled"},"word_highlights_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Word Highlights Color"},"word_highlights_background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Word Highlights Background Color"},"word_highlights_opacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Word Highlights Opacity"},"word_highlights_border_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Word Highlights Border Radius"},"word_highlights_blur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Word Highlights Blur"},"section_animation":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleSectionAnimationModel"},{"type":"null"}]},"word_animation":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleWordAnimationModel"},{"type":"null"}]},"character_animation":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleCharacterAnimationModel"},{"type":"null"}]},"cursor_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cursor Enabled"},"width_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Width Pct"},"horizontal_placement":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleHorizontalPlacementModel"},{"type":"null"}]},"vertical_placement":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleVerticalPlacementModel"},{"type":"null"}]},"auto_break_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Break Enabled"},"max_lines_per_section":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Lines Per Section"},"max_words_per_line":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Words Per Line"}},"title":"CaptionStyleModel"},"CaptionStyleSectionAnimationModel":{"type":"object","properties":{"enter_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Enter Type"},"exit_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Exit Type"}},"required":["enter_type","exit_type"],"title":"CaptionStyleSectionAnimationModel"},"CaptionStyleTemplateModel":{"type":"object","properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"requires_high_fps":{"type":"boolean","default":false,"title":"Requires High Fps"}},"required":["key","label"],"title":"CaptionStyleTemplateModel"},"CaptionStyleVerticalPlacementModel":{"type":"object","properties":{"align":{"type":"string","enum":["top","center","bottom"],"title":"Align"},"translate_pct":{"type":"number","title":"Translate Pct"}},"required":["align","translate_pct"],"title":"CaptionStyleVerticalPlacementModel"},"CaptionStyleWordAnimationModel":{"type":"object","properties":{"enter_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Enter Type"},"exit_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Exit Type"}},"required":["enter_type","exit_type"],"title":"CaptionStyleWordAnimationModel"},"ChapterContentBlockExtendableNodeResponseModel":{"description":"Not used. Make sure you anticipate new types in the future.","type":"object","properties":{"type":{"type":"string","const":"_other","title":"Type"}},"required":["type"],"title":"ChapterContentBlockExtendableNodeResponseModel"},"ChapterContentBlockInputModel":{"type":"object","properties":{"sub_type":{"anyOf":[{"type":"string","enum":["p","h1","h2","h3"]},{"type":"null"}],"title":"Sub Type"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/ChapterContentParagraphTtsNodeInputModel"},"title":"Nodes"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"}},"required":["nodes"],"title":"ChapterContentBlockInputModel"},"ChapterContentBlockResponseModel":{"type":"object","properties":{"block_id":{"type":"string","title":"Block Id"},"nodes":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ChapterContentBlockTtsNodeResponseModel"},{"$ref":"#/components/schemas/ChapterContentBlockExtendableNodeResponseModel"}]},"title":"Nodes"}},"required":["block_id","nodes"],"title":"ChapterContentBlockResponseModel"},"ChapterContentBlockTtsNodeResponseModel":{"type":"object","properties":{"type":{"type":"string","const":"tts_node","title":"Type"},"project_voice_ref_id":{"type":"string","title":"Project Voice Ref Id"},"text":{"type":"string","title":"Text"},"voice_id":{"type":"string","deprecated":true,"readOnly":true,"title":"Voice Id"}},"required":["type","project_voice_ref_id","text","voice_id"],"title":"ChapterContentBlockTtsNodeResponseModel"},"ChapterContentInputModel":{"type":"object","properties":{"blocks":{"type":"array","items":{"$ref":"#/components/schemas/ChapterContentBlockInputModel"},"title":"Blocks"}},"required":["blocks"],"title":"ChapterContentInputModel"},"ChapterContentParagraphTtsNodeInputModel":{"type":"object","properties":{"type":{"type":"string","const":"tts_node","title":"Type"},"text":{"type":"string","title":"Text"},"voice_id":{"type":"string","title":"Voice Id"}},"required":["type","text","voice_id"],"title":"ChapterContentParagraphTtsNodeInputModel"},"ChapterContentResponseModel":{"type":"object","properties":{"blocks":{"type":"array","items":{"$ref":"#/components/schemas/ChapterContentBlockResponseModel"},"title":"Blocks"}},"required":["blocks"],"title":"ChapterContentResponseModel"},"ChapterResponseModel":{"type":"object","properties":{"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"name":{"description":"The name of the chapter.","type":"string","title":"Name"},"last_conversion_date_unix":{"description":"The last conversion date of the chapter.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"conversion_progress":{"description":"The conversion progress of the chapter.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Conversion Progress"},"can_be_downloaded":{"description":"Whether the chapter can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"state":{"description":"The state of the chapter.","type":"string","enum":["default","converting"],"title":"State","x-fern-type-name":"ChapterState"},"has_video":{"description":"Whether the chapter has a video.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Video"},"has_visual_content":{"description":"Whether the chapter has any visual content (video, image, or text clips).","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Visual Content"},"voice_ids":{"description":"List of voice ids used by the chapter","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Voice Ids"},"statistics":{"description":"The statistics of the chapter.","anyOf":[{"$ref":"#/components/schemas/ChapterStatisticsResponseModel"},{"type":"null"}]},"last_conversion_error":{"description":"The last conversion error of the chapter.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Conversion Error"}},"example":{"can_be_downloaded":true,"chapter_id":"aw1NgEzBg83R7vgmiJt6","conversion_progress":0.5,"last_conversion_date_unix":1714204800,"last_conversion_error":"Error message","name":"Chapter 1","state":"converting","statistics":{"characters_converted":500,"characters_unconverted":1000,"credits_needed_to_convert":1000,"paragraphs_converted":20,"paragraphs_unconverted":10,"voice_statistics":[{"characters_converted":300,"characters_unconverted":600,"project_voice_ref_id":"voice123","voice_id":"voice123"},{"characters_converted":200,"characters_unconverted":400,"project_voice_ref_id":"voice456","voice_id":"voice456"}]}},"required":["chapter_id","name","can_be_downloaded","state"],"title":"ChapterResponseModel","x-fern-type-name":"ChapterResponse"},"ChapterSnapshotExtendedResponseModel":{"type":"object","properties":{"chapter_snapshot_id":{"description":"The ID of the chapter snapshot.","type":"string","title":"Chapter Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"created_at_unix":{"description":"The creation date of the chapter snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the chapter snapshot.","type":"string","title":"Name"},"character_alignments":{"type":"array","items":{"$ref":"#/components/schemas/CharacterAlignmentModel"},"title":"Character Alignments"}},"example":{"chapter_id":"aw1NgEzBg83R7vgmiJt3","chapter_snapshot_id":"aw1NgEzBg83R7vgmiJt1","character_alignments":[],"created_at_unix":1714204800,"name":"My Chapter Snapshot","project_id":"aw1NgEzBg83R7vgmiJt2"},"required":["chapter_snapshot_id","project_id","chapter_id","created_at_unix","name","character_alignments"],"title":"ChapterSnapshotExtendedResponseModel"},"ChapterSnapshotResponseModel":{"type":"object","properties":{"chapter_snapshot_id":{"description":"The ID of the chapter snapshot.","type":"string","title":"Chapter Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"created_at_unix":{"description":"The creation date of the chapter snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the chapter snapshot.","type":"string","title":"Name"}},"example":{"chapter_id":"aw1NgEzBg83R7vgmiJt3","chapter_snapshot_id":"aw1NgEzBg83R7vgmiJt1","created_at_unix":1714204800,"name":"My Chapter Snapshot","project_id":"aw1NgEzBg83R7vgmiJt2"},"required":["chapter_snapshot_id","project_id","chapter_id","created_at_unix","name"],"title":"ChapterSnapshotResponseModel","x-fern-type-name":"ChapterSnapshotResponse"},"ChapterSnapshotsResponseModel":{"type":"object","properties":{"snapshots":{"description":"List of chapter snapshots.","type":"array","items":{"$ref":"#/components/schemas/ChapterSnapshotResponseModel"},"title":"Snapshots"}},"example":{"snapshots":[{"chapter_id":"aw1NgEzBg83R7vgmiJt3","chapter_snapshot_id":"aw1NgEzBg83R7vgmiJt1","created_at_unix":1714204800,"name":"My Chapter Snapshot","project_id":"aw1NgEzBg83R7vgmiJt2"}]},"required":["snapshots"],"title":"ChapterSnapshotsResponseModel","x-fern-type-name":"ChapterSnapshotsResponse"},"ChapterStatisticsResponseModel":{"type":"object","properties":{"characters_unconverted":{"description":"The number of unconverted characters.","type":"integer","title":"Characters Unconverted"},"characters_converted":{"description":"The number of converted characters.","type":"integer","title":"Characters Converted"},"paragraphs_converted":{"description":"The number of converted paragraphs.","type":"integer","title":"Paragraphs Converted"},"paragraphs_unconverted":{"description":"The number of unconverted paragraphs.","type":"integer","title":"Paragraphs Unconverted"},"credits_needed_to_convert":{"description":"The number of credits needed to convert the remaining paragraphs.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Needed To Convert"},"voice_statistics":{"description":"Per-voice breakdown of character counts.","anyOf":[{"items":{"$ref":"#/components/schemas/VoiceStatisticsResponseModel"},"type":"array"},{"type":"null"}],"title":"Voice Statistics"}},"example":{"characters_converted":500,"characters_unconverted":1000,"credits_needed_to_convert":1000,"paragraphs_converted":20,"paragraphs_unconverted":10,"voice_statistics":[{"characters_converted":300,"characters_unconverted":600,"project_voice_ref_id":"voice123","voice_id":"voice123"},{"characters_converted":200,"characters_unconverted":400,"project_voice_ref_id":"voice456","voice_id":"voice456"}]},"required":["characters_unconverted","characters_converted","paragraphs_converted","paragraphs_unconverted"],"title":"ChapterStatisticsResponseModel","x-fern-type-name":"ChapterStatisticsResponse"},"ChapterWithContentResponseModel":{"type":"object","properties":{"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"name":{"description":"The name of the chapter.","type":"string","title":"Name"},"last_conversion_date_unix":{"description":"The last conversion date of the chapter.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"conversion_progress":{"description":"The conversion progress of the chapter.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Conversion Progress"},"can_be_downloaded":{"description":"Whether the chapter can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"state":{"description":"The state of the chapter.","type":"string","enum":["default","converting"],"title":"State"},"has_video":{"description":"Whether the chapter has a video.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Video"},"has_visual_content":{"description":"Whether the chapter has any visual content (video, image, or text clips).","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Visual Content"},"voice_ids":{"description":"List of voice ids used by the chapter","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Voice Ids"},"statistics":{"description":"The statistics of the chapter.","anyOf":[{"$ref":"#/components/schemas/ChapterStatisticsResponseModel"},{"type":"null"}]},"last_conversion_error":{"description":"The last conversion error of the chapter.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Conversion Error"},"content":{"$ref":"#/components/schemas/ChapterContentResponseModel"}},"example":{"can_be_downloaded":true,"chapter_id":"aw1NgEzBg83R7vgmiJt6","content":{"blocks":[]},"conversion_progress":0.5,"last_conversion_date_unix":1714204800,"name":"Chapter 1","state":"default","statistics":{"characters_converted":200,"characters_unconverted":100,"paragraphs_converted":5,"paragraphs_unconverted":3}},"required":["chapter_id","name","can_be_downloaded","state","content"],"title":"ChapterWithContentResponseModel"},"CharacterAge":{"type":"string","enum":["young","middle-aged","old"]},"CharacterAlignmentModel":{"type":"object","properties":{"characters":{"type":"array","items":{"type":"string"},"title":"Characters"},"character_start_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character Start Times Seconds"},"character_end_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character End Times Seconds"}},"required":["characters","character_start_times_seconds","character_end_times_seconds"],"title":"CharacterAlignmentModel"},"CharacterAlignmentResponseModel":{"type":"object","properties":{"characters":{"type":"array","items":{"type":"string"},"title":"Characters"},"character_start_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character Start Times Seconds"},"character_end_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character End Times Seconds"}},"required":["characters","character_start_times_seconds","character_end_times_seconds"],"title":"CharacterAlignmentResponseModel"},"CharacterGender":{"type":"string","enum":["male","female","neutral"]},"CharacterMetadataResponseModel":{"type":"object","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"sample_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Message"},"voice_creation_prompt_suggestion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Creation Prompt Suggestion"},"gender":{"anyOf":[{"$ref":"#/components/schemas/CharacterGender"},{"type":"null"}]},"age":{"anyOf":[{"$ref":"#/components/schemas/CharacterAge"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"}},"title":"CharacterMetadataResponseModel"},"CharacterRefreshPeriod":{"type":"string","enum":["monthly_period","3_month_period","6_month_period","annual_period"],"title":"CharacterRefreshPeriod"},"CharacterResponseModel":{"type":"object","properties":{"character_id":{"type":"string","title":"Character Id"},"name":{"type":"string","title":"Name"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/CharacterMetadataResponseModel"},{"type":"null"}]}},"required":["character_id","name","metadata"],"title":"CharacterResponseModel"},"ChatSourceMedium":{"type":"string","enum":["audio","text","image","file"],"title":"ChatSourceMedium"},"CheckServiceAvailabilityParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"check_service_availability","const":"check_service_availability","title":"Smb Tool Type"}},"title":"CheckServiceAvailabilityParams"},"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","internal_turn_probability","internal_tentative_agent_response"],"title":"ClientEvent"},"ClientToolConfig-Input":{"description":"A client tool is one that sends an event to the user's client to trigger something client side","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"client","const":"client","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":1,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"parameters":{"description":"Schema for any parameters to pass to the client","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"expects_response":{"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","type":"boolean","default":false,"title":"Expects Response"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"}},"example":{"expects_response":false,"type":"client"},"required":["name","description"],"title":"ClientToolConfig"},"ClientToolConfig-Output":{"description":"A client tool is one that sends an event to the user's client to trigger something client side","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"client","const":"client","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":1,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"parameters":{"description":"Schema for any parameters to pass to the client","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"expects_response":{"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","type":"boolean","default":false,"title":"Expects Response"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"}},"example":{"expects_response":false,"type":"client"},"required":["name","description"],"title":"ClientToolConfig"},"ClipAnimation":{"type":"object","properties":{"enter_effect":{"type":"string","default":"none","enum":["none","fade","float","gentle_float","zoom_in","drop","slide_left","slide_right","slide_up","slide_down","pop","bounce","spin","slide_bounce"],"title":"Enter Effect"},"enter_duration_ms":{"type":"integer","default":0,"title":"Enter Duration Ms"},"exit_effect":{"type":"string","default":"none","enum":["none","fade","float","gentle_float","zoom_in","drop","slide_left","slide_right","slide_up","slide_down","pop","bounce","spin","slide_bounce"],"title":"Exit Effect"},"exit_duration_ms":{"type":"integer","default":0,"title":"Exit Duration Ms"}},"title":"ClipAnimation"},"ColumnFilter":{"type":"object","properties":{"column":{"type":"string","title":"Column"},"operation":{"type":"string","enum":["in","not_in","le","ge","lt","gt","eq","neq"],"title":"Operation"},"values":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"string","format":"date-time"},{"type":"boolean"},{"type":"null"}]},"title":"Values"}},"required":["column","operation","values"],"title":"ColumnFilter"},"ColumnUnit":{"type":"string","enum":["ms","s","min","duration","credits","usd","eur","inr","pln","ratio","rating"],"title":"ColumnUnit"},"CompositionPlan":{"description":"Composition plan for the `music_v2` model. Using this field with any other model will result in an error.","type":"object","properties":{"chunks":{"description":"The chunks that make up the generation.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GenerationChunk-Input"},{"$ref":"#/components/schemas/AudioRefChunk"}]},"maxItems":30,"title":"Chunks"}},"example":{"chunks":[{"duration_ms":15000,"positive_styles":["pop","warm synths","steady groove","layered harmonies"],"text":"[Verse]\nCity lights are fading\nWe keep moving through the night"},{"duration_ms":15000,"positive_styles":["uplifting","bigger drums","wide vocals"],"text":"[Chorus]\nHold on to the feeling\n{very loud}Let it rise and come alive"},{"duration_ms":5000,"positive_styles":["gentle ending","soft pads"],"text":"[Instrumental Outro]"}]},"required":["chunks"],"title":"CompositionPlan"},"ConfigEntityType":{"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.","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"],"title":"ConfigEntityType"},"ConstantSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"constant","const":"constant","title":"Source"},"constant_value":{"description":"The constant value to use","anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"items":{},"type":"array"},{"additionalProperties":true,"type":"object"}],"title":"Constant Value"}},"required":["constant_value"],"title":"ConstantSchemaOverride"},"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"},"ContentFormat":{"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.","type":"string","default":"html","enum":["html","markdown"],"title":"ContentFormat"},"ContentGuardrail-Input":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ContentConfig"},"trigger_action":{"discriminator":{"propertyName":"type","mapping":{"end_call":"#/components/schemas/EndCallTriggerAction","retry":"#/components/schemas/RetryTriggerAction"}},"oneOf":[{"$ref":"#/components/schemas/EndCallTriggerAction"},{"$ref":"#/components/schemas/RetryTriggerAction"}],"title":"Trigger Action"}},"title":"ContentGuardrail"},"ContentGuardrail-Output":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ContentConfig"},"trigger_action":{"discriminator":{"propertyName":"type","mapping":{"end_call":"#/components/schemas/EndCallTriggerAction","retry":"#/components/schemas/RetryTriggerAction"}},"oneOf":[{"$ref":"#/components/schemas/EndCallTriggerAction"},{"$ref":"#/components/schemas/RetryTriggerAction"}],"title":"Trigger Action"}},"title":"ContentGuardrail"},"ContentThresholdGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"},"threshold":{"default":0.3,"anyOf":[{"type":"number"},{"type":"string","enum":["low","medium","high"]}],"title":"Threshold"}},"title":"ContentThresholdGuardrail"},"ContextualUpdateInfo":{"type":"object","properties":{"context_id":{"description":"Client-supplied identifier grouping related contextual updates.","type":"string","title":"Context Id"},"is_superseded":{"description":"True when this contextual update has been replaced by a newer update with the same context_id.","type":"boolean","default":false,"title":"Is Superseded"}},"required":["context_id"],"title":"ContextualUpdateInfo"},"Contributor":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"profile_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Id"}},"required":["name","role"],"title":"Contributor"},"ConvAIDynamicVariable":{"description":"Used to reference a dynamic variable.","type":"object","properties":{"variable_name":{"type":"string","title":"Variable Name"}},"required":["variable_name"],"title":"ConvAIDynamicVariable"},"ConvAIEnvVarLocator":{"description":"Used to reference an environment variable by label.","type":"object","properties":{"env_var_label":{"type":"string","title":"Env Var Label"}},"required":["env_var_label"],"title":"ConvAIEnvVarLocator"},"ConvAIFileUploadResponseModel":{"type":"object","properties":{"file_id":{"type":"string","title":"File Id"}},"required":["file_id"],"title":"ConvAIFileUploadResponseModel"},"ConvAISecretLocator":{"description":"Used to reference a secret from the agent's secret store.","type":"object","properties":{"secret_id":{"type":"string","title":"Secret Id"}},"required":["secret_id"],"title":"ConvAISecretLocator"},"ConvAIStoredSecretDependencies":{"type":"object","properties":{"tools":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableToolIdentifier"},{"$ref":"#/components/schemas/DependentUnknownToolIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableToolIdentifier","unknown":"#/components/schemas/DependentUnknownToolIdentifier"}}},"title":"Tools"},"tools_has_more":{"description":"Whether there are more tool dependents beyond the returned preview","type":"boolean","default":false,"title":"Tools Has More"},"agents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Agents"},"agents_has_more":{"description":"Whether there are more agent dependents beyond the returned preview","type":"boolean","default":false,"title":"Agents Has More"},"phone_numbers":{"type":"array","items":{"$ref":"#/components/schemas/DependentPhoneNumberIdentifier"},"title":"Phone Numbers"},"phone_numbers_has_more":{"description":"Whether there are more phone number dependents beyond the returned preview","type":"boolean","default":false,"title":"Phone Numbers Has More"},"mcp_servers":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableMCPServerIdentifier"},{"$ref":"#/components/schemas/DependentUnknownMCPServerIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableMCPServerIdentifier","unknown":"#/components/schemas/DependentUnknownMCPServerIdentifier"}}},"title":"Mcp Servers"},"others":{"type":"array","items":{"$ref":"#/components/schemas/SecretDependencyType"},"title":"Others"}},"required":["tools","agents","others"],"title":"ConvAIStoredSecretDependencies"},"ConvAIUserSecretDBModel":{"description":"User-specific secret model that are not shared with other users in a workspace.","type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"encrypted_value":{"type":"string","title":"Encrypted Value"},"nonce":{"type":"string","title":"Nonce"}},"required":["id","name","encrypted_value","nonce"],"title":"ConvAIUserSecretDBModel"},"ConvAIWebhooks":{"type":"object","properties":{"post_call_webhook_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Post Call Webhook Id"},"events":{"description":"List of event types to send via webhook. Options: transcript, audio, call_initiation_failure, unredacted_transcript, unredacted_audio.","type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"},"title":"Events"},"transcript_format":{"description":"Format for transcript webhooks.","default":"json","$ref":"#/components/schemas/WebhookTranscriptFormat"},"send_audio":{"description":"DEPRECATED: Use 'events' field instead. Whether to send audio data with post-call webhooks for ConvAI conversations","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Send Audio"}},"title":"ConvAIWebhooks"},"ConvAIWorkspaceStoredSecretConfig":{"type":"object","properties":{"type":{"type":"string","const":"stored","title":"Type"},"secret_id":{"type":"string","title":"Secret Id"},"name":{"type":"string","title":"Name"},"used_by":{"$ref":"#/components/schemas/ConvAIStoredSecretDependencies"}},"required":["type","secret_id","name","used_by"],"title":"ConvAIWorkspaceStoredSecretConfig"},"ConversationASRUsageModel":{"description":"Aggregated ASR usage for a conversation (analytics-only, not billing).","type":"object","properties":{"asr_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asr Model"},"total_transcription_calls":{"type":"integer","default":0,"title":"Total Transcription Calls"},"total_audio_input_seconds":{"type":"number","default":0,"title":"Total Audio Input Seconds"}},"title":"ConversationASRUsageModel"},"ConversationChargingCommonModel":{"type":"object","properties":{"dev_discount":{"type":"boolean","default":false,"title":"Dev Discount"},"is_burst":{"type":"boolean","default":false,"title":"Is Burst"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"llm_usage":{"$ref":"#/components/schemas/LLMCategoryUsage"},"llm_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Llm Price"},"llm_charge":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Llm Charge"},"call_charge":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Charge"},"platform_charge":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Platform Charge"},"platform_usage":{"$ref":"#/components/schemas/PlatformUsage"},"platform_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Platform Price"},"free_minutes_consumed":{"type":"number","default":0,"title":"Free Minutes Consumed"},"free_llm_dollars_consumed":{"type":"number","default":0,"title":"Free Llm Dollars Consumed"},"tts_usage":{"anyOf":[{"$ref":"#/components/schemas/ConversationTTSUsageModel"},{"type":"null"}]},"asr_usage":{"anyOf":[{"$ref":"#/components/schemas/ConversationASRUsageModel"},{"type":"null"}]}},"title":"ConversationChargingCommonModel"},"ConversationConfig-Input":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","type":"boolean","default":false,"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","type":"integer","default":600,"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","$ref":"#/components/schemas/FileInputConfig","x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","type":"boolean","default":false,"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","$ref":"#/components/schemas/BackgroundSoundConfig"},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","type":"boolean","default":false,"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfig"},"ConversationConfig-Output":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","type":"boolean","default":false,"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","type":"integer","default":600,"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","$ref":"#/components/schemas/FileInputConfig","x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","type":"boolean","default":false,"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","$ref":"#/components/schemas/BackgroundSoundConfig"},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","type":"boolean","default":false,"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfig"},"ConversationConfigClientOverride-Input":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigOverride"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigOverride-Input"},{"type":"null"}]}},"example":{"agent":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"asr":{"keywords":["hello","world"]},"tts":{"model_id":"eleven_turbo_v2","similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"soft_timeout_config":{"message":"Hhmmmm...yeah."}}},"title":"ConversationConfigClientOverride"},"ConversationConfigClientOverride-Output":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigOverride"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigOverride-Output"},{"type":"null"}]}},"example":{"agent":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"asr":{"keywords":["hello","world"]},"tts":{"model_id":"eleven_turbo_v2","similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"soft_timeout_config":{"message":"Hhmmmm...yeah."}}},"title":"ConversationConfigClientOverride"},"ConversationConfigClientOverrideConfig-Input":{"type":"object","properties":{"asr":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ASRConversationalConfigOverrideConfig"},"turn":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TurnConfigOverrideConfig"},"tts":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TTSConversationalConfigOverrideConfig"},"conversation":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ConversationConfigOverrideConfig"},"agent":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/AgentConfigOverrideConfig"}},"title":"ConversationConfigClientOverrideConfig"},"ConversationConfigClientOverrideConfig-Output":{"type":"object","properties":{"asr":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ASRConversationalConfigOverrideConfig"},"turn":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TurnConfigOverrideConfig"},"tts":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TTSConversationalConfigOverrideConfig"},"conversation":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ConversationConfigOverrideConfig"},"agent":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/AgentConfigOverrideConfig"}},"title":"ConversationConfigClientOverrideConfig"},"ConversationConfigOverride":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only","x-convai-client-override":true}},"title":"ConversationConfigOverride"},"ConversationConfigOverrideConfig":{"type":"object","properties":{"text_only":{"description":"Whether to allow overriding the text_only field.","type":"boolean","default":false,"title":"Text Only"}},"title":"ConversationConfigOverrideConfig"},"ConversationConfigWorkflowOverride-Input":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","anyOf":[{"$ref":"#/components/schemas/FileInputConfigWorkflowOverride"},{"type":"null"}],"x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundConfigWorkflowOverride"},{"type":"null"}]},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfigWorkflowOverride"},"ConversationConfigWorkflowOverride-Output":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","anyOf":[{"$ref":"#/components/schemas/FileInputConfigWorkflowOverride"},{"type":"null"}],"x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundConfigWorkflowOverride"},{"type":"null"}]},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfigWorkflowOverride"},"ConversationDeletionSettings":{"type":"object","properties":{"deletion_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deletion Time Unix Secs"},"deleted_logs_at_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deleted Logs At Time Unix Secs"},"deleted_audio_at_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deleted Audio At Time Unix Secs"},"deleted_transcript_at_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deleted Transcript At Time Unix Secs"},"delete_transcript_and_pii":{"type":"boolean","default":false,"title":"Delete Transcript And Pii"},"delete_audio":{"type":"boolean","default":false,"title":"Delete Audio"}},"title":"ConversationDeletionSettings"},"ConversationFeedbackRequestModel":{"type":"object","properties":{"feedback":{"description":"Either 'like' or 'dislike' to indicate the feedback for the conversation.","anyOf":[{"$ref":"#/components/schemas/UserFeedbackScore"},{"type":"null"}],"examples":["like"]}},"examples":[{"feedback":"like"}],"title":"ConversationFeedbackRequestModel"},"ConversationFeedbackType":{"type":"string","enum":["thumbs","rating"],"title":"ConversationFeedbackType"},"ConversationHistoryAnalysisCommonModel":{"type":"object","properties":{"evaluation_criteria_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"},"title":"Evaluation Criteria Results"},"data_collection_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"},"title":"Data Collection Results"},"evaluation_criteria_results_list":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"},"title":"Evaluation Criteria Results List"},"data_collection_results_list":{"type":"array","items":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"},"title":"Data Collection Results List"},"call_successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"call_success_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Call Success Score"},"transcript_summary":{"type":"string","title":"Transcript Summary"},"call_summary_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Summary Title"},"scoped":{"type":"array","items":{"$ref":"#/components/schemas/ScopedAnalysisResult"},"title":"Scoped"}},"required":["call_successful","transcript_summary"],"title":"ConversationHistoryAnalysisCommonModel"},"ConversationHistoryBatchCallModel":{"type":"object","properties":{"batch_call_id":{"type":"string","title":"Batch Call Id"},"batch_call_recipient_id":{"type":"string","title":"Batch Call Recipient Id"}},"required":["batch_call_id","batch_call_recipient_id"],"title":"ConversationHistoryBatchCallModel"},"ConversationHistoryElevenAssistantCommonModel":{"type":"object","properties":{"is_eleven_assistant":{"type":"boolean","default":false,"title":"Is Eleven Assistant"}},"title":"ConversationHistoryElevenAssistantCommonModel"},"ConversationHistoryErrorCommonModel":{"type":"object","properties":{"code":{"type":"integer","title":"Code"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"required":["code"],"title":"ConversationHistoryErrorCommonModel"},"ConversationHistoryEvaluationCriteriaResultCommonModel":{"type":"object","properties":{"criteria_id":{"type":"string","title":"Criteria Id"},"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"rationale":{"type":"string","title":"Rationale"},"scoring_mode":{"anyOf":[{"$ref":"#/components/schemas/CriteriaScoringMode"},{"type":"null"}]},"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score"},"max_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Score"}},"required":["criteria_id","result","rationale"],"title":"ConversationHistoryEvaluationCriteriaResultCommonModel"},"ConversationHistoryExotelPhoneCallModel":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"agent_number":{"type":"string","title":"Agent Number"},"external_number":{"type":"string","title":"External Number"},"type":{"type":"string","default":"exotel","const":"exotel","title":"Type"},"stream_sid":{"type":"string","title":"Stream Sid"},"call_sid":{"type":"string","title":"Call Sid"}},"required":["direction","phone_number_id","agent_number","external_number","stream_sid","call_sid"],"title":"ConversationHistoryExotelPhoneCallModel"},"ConversationHistoryFeedbackCommonModel":{"type":"object","properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/ConversationFeedbackType"},{"type":"null"}]},"overall_score":{"anyOf":[{"$ref":"#/components/schemas/UserFeedbackScore"},{"type":"null"}]},"likes":{"type":"integer","default":0,"title":"Likes"},"dislikes":{"type":"integer","default":0,"title":"Dislikes"},"rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rating"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"title":"ConversationHistoryFeedbackCommonModel"},"ConversationHistoryMetadataCommonModel":{"type":"object","properties":{"start_time_unix_secs":{"type":"integer","title":"Start Time Unix Secs"},"accepted_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accepted Time Unix Secs"},"call_duration_secs":{"type":"integer","title":"Call Duration Secs"},"cost":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cost"},"deletion_settings":{"$ref":"#/components/schemas/ConversationDeletionSettings"},"feedback":{"$ref":"#/components/schemas/ConversationHistoryFeedbackCommonModel"},"authorization_method":{"default":"public","$ref":"#/components/schemas/AuthorizationMethod"},"charging":{"$ref":"#/components/schemas/ConversationChargingCommonModel"},"phone_call":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTwilioPhoneCallModel"},{"$ref":"#/components/schemas/ConversationHistoryExotelPhoneCallModel"},{"$ref":"#/components/schemas/ConversationHistorySIPTrunkingPhoneCallModel"}],"discriminator":{"propertyName":"type","mapping":{"exotel":"#/components/schemas/ConversationHistoryExotelPhoneCallModel","sip_trunking":"#/components/schemas/ConversationHistorySIPTrunkingPhoneCallModel","twilio":"#/components/schemas/ConversationHistoryTwilioPhoneCallModel"}}},{"type":"null"}],"title":"Phone Call"},"batch_call":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryBatchCallModel"},{"type":"null"}]},"termination_reason":{"type":"string","default":"","title":"Termination Reason"},"error":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryErrorCommonModel"},{"type":"null"}]},"warnings":{"type":"array","items":{"type":"string"},"title":"Warnings"},"main_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Language"},"rag_usage":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryRagUsageCommonModel"},{"type":"null"}]},"text_only":{"type":"boolean","default":false,"title":"Text Only"},"features_usage":{"$ref":"#/components/schemas/FeaturesUsageCommonModel"},"eleven_assistant":{"$ref":"#/components/schemas/ConversationHistoryElevenAssistantCommonModel"},"initiator_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiator Id"},"conversation_initiation_source":{"default":"unknown","$ref":"#/components/schemas/ConversationInitiationSource"},"conversation_initiation_source_version":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Conversation Initiation Source Version"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"async_metadata":{"anyOf":[{"$ref":"#/components/schemas/AsyncConversationMetadata"},{"type":"null"}]},"whatsapp":{"anyOf":[{"$ref":"#/components/schemas/WhatsAppConversationInfo"},{"type":"null"}]},"sms":{"anyOf":[{"$ref":"#/components/schemas/SMSConversationInfo"},{"type":"null"}]},"agent_created_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"},"agent_last_updated_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"},"voice_rewards":{"type":"array","items":{"$ref":"#/components/schemas/ConversationVoiceRewardModel"},"title":"Voice Rewards"},"cost_fiat":{"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).","anyOf":[{"type":"number"},{"type":"null"}],"readOnly":true,"title":"Cost Fiat"}},"required":["start_time_unix_secs","call_duration_secs","cost_fiat"],"title":"ConversationHistoryMetadataCommonModel"},"ConversationHistoryMultivoiceMessageModel":{"description":"Represents a message from a multi-voice agent.","type":"object","properties":{"parts":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessagePartModel"},"title":"Parts"}},"required":["parts"],"title":"ConversationHistoryMultivoiceMessageModel"},"ConversationHistoryMultivoiceMessagePartModel":{"description":"Represents a single voice part of a multi-voice message.","type":"object","properties":{"text":{"type":"string","title":"Text"},"voice_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Label"},"time_in_call_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time In Call Secs"}},"required":["text","voice_label","time_in_call_secs"],"title":"ConversationHistoryMultivoiceMessagePartModel"},"ConversationHistoryRagUsageCommonModel":{"type":"object","properties":{"usage_count":{"type":"integer","title":"Usage Count"},"embedding_model":{"type":"string","title":"Embedding Model"}},"required":["usage_count","embedding_model"],"title":"ConversationHistoryRagUsageCommonModel"},"ConversationHistoryRedactionConfig":{"type":"object","properties":{"enabled":{"description":"Whether conversation history redaction is enabled","type":"boolean","default":false,"title":"Enabled"},"entities":{"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'.","type":"array","items":{"$ref":"#/components/schemas/ConfigEntityType"},"title":"Entities"}},"title":"ConversationHistoryRedactionConfig"},"ConversationHistorySIPTrunkingPhoneCallModel":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"agent_number":{"type":"string","title":"Agent Number"},"external_number":{"type":"string","title":"External Number"},"type":{"type":"string","const":"sip_trunking","title":"Type"},"call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Id"},"call_sid":{"type":"string","title":"Call Sid"},"sip_header_dynamic_variables":{"type":"object","additionalProperties":{"type":"string"},"title":"Sip Header Dynamic Variables"}},"required":["direction","phone_number_id","agent_number","external_number","type","call_sid"],"title":"ConversationHistorySIPTrunkingPhoneCallModel"},"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Input":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel"},"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"}},"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":"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel"},"ConversationHistoryTranscriptCommonModel-Input":{"type":"object","properties":{"role":{"type":"string","enum":["user","agent"],"title":"Role"},"agent_metadata":{"anyOf":[{"$ref":"#/components/schemas/AgentMetadata"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"multivoice_message":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},{"type":"null"}]},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Input"},"title":"Tool Calls"},"tool_results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Input"}]},"title":"Tool Results"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/UserFeedback"},{"type":"null"}]},"llm_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Override"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"conversation_turn_metrics":{"anyOf":[{"$ref":"#/components/schemas/ConversationTurnMetrics"},{"type":"null"}]},"rag_retrieval_info":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalInfo"},{"type":"null"}]},"llm_usage":{"anyOf":[{"$ref":"#/components/schemas/LLMUsage-Input"},{"type":"null"}]},"interrupted":{"type":"boolean","default":false,"title":"Interrupted"},"ignored_as_backchannel":{"type":"boolean","default":false,"title":"Ignored As Backchannel"},"original_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Message"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"},"title":"Reasoning"},"source_medium":{"anyOf":[{"$ref":"#/components/schemas/ChatSourceMedium"},{"type":"null"}]},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"},"title":"Used Static Kb Document Ids"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptCommonModel"},"ConversationHistoryTranscriptCommonModel-Output":{"type":"object","properties":{"role":{"type":"string","enum":["user","agent"],"title":"Role"},"agent_metadata":{"anyOf":[{"$ref":"#/components/schemas/AgentMetadata"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"multivoice_message":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},{"type":"null"}]},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Output"},"title":"Tool Calls"},"tool_results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output"}]},"title":"Tool Results"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/UserFeedback"},{"type":"null"}]},"llm_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Override"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"conversation_turn_metrics":{"anyOf":[{"$ref":"#/components/schemas/ConversationTurnMetrics"},{"type":"null"}]},"rag_retrieval_info":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalInfo"},{"type":"null"}]},"llm_usage":{"anyOf":[{"$ref":"#/components/schemas/LLMUsage-Output"},{"type":"null"}]},"interrupted":{"type":"boolean","default":false,"title":"Interrupted"},"ignored_as_backchannel":{"type":"boolean","default":false,"title":"Ignored As Backchannel"},"original_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Message"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"},"title":"Reasoning"},"source_medium":{"anyOf":[{"$ref":"#/components/schemas/ChatSourceMedium"},{"type":"null"}]},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"},"title":"Used Static Kb Document Ids"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptCommonModel"},"ConversationHistoryTranscriptFileInputResponseModel":{"type":"object","properties":{"file_id":{"type":"string","title":"File Id"},"original_filename":{"type":"string","title":"Original Filename"},"mime_type":{"type":"string","title":"Mime Type"},"file_url":{"type":"string","title":"File Url"}},"required":["file_id","original_filename","mime_type","file_url"],"title":"ConversationHistoryTranscriptFileInputResponseModel"},"ConversationHistoryTranscriptOtherToolsResultCommonModel":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"anyOf":[{"type":"string","enum":["client","webhook","mcp","code"]},{"type":"null"}],"title":"Type"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called"],"title":"ConversationHistoryTranscriptOtherToolsResultCommonModel"},"ConversationHistoryTranscriptResponseModel":{"type":"object","properties":{"role":{"type":"string","enum":["user","agent"],"title":"Role"},"agent_metadata":{"anyOf":[{"$ref":"#/components/schemas/AgentMetadata"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"multivoice_message":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},{"type":"null"}]},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Output"},"title":"Tool Calls"},"tool_results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output"}]},"title":"Tool Results"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/UserFeedback"},{"type":"null"}]},"llm_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Override"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"conversation_turn_metrics":{"anyOf":[{"$ref":"#/components/schemas/ConversationTurnMetrics"},{"type":"null"}]},"rag_retrieval_info":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalInfo"},{"type":"null"}]},"llm_usage":{"anyOf":[{"$ref":"#/components/schemas/LLMUsage-Output"},{"type":"null"}]},"interrupted":{"type":"boolean","default":false,"title":"Interrupted"},"ignored_as_backchannel":{"type":"boolean","default":false,"title":"Ignored As Backchannel"},"original_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Message"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"},"title":"Reasoning"},"source_medium":{"anyOf":[{"$ref":"#/components/schemas/ChatSourceMedium"},{"type":"null"}]},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"},"title":"Used Static Kb Document Ids"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"},"file_input":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptFileInputResponseModel"},{"type":"null"}]},"contextual_update_info":{"anyOf":[{"$ref":"#/components/schemas/ContextualUpdateInfo"},{"type":"null"}]},"reasoned":{"type":"boolean","default":false,"title":"Reasoned"}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptResponseModel"},"ConversationHistoryTranscriptSystemToolResultCommonModel-Input":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"system","title":"Type"},"result":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/EndCallToolResultModel"},{"$ref":"#/components/schemas/LanguageDetectionToolResultModel"},{"$ref":"#/components/schemas/TransferToAgentToolResultSuccessModel-Input"},{"$ref":"#/components/schemas/TransferToAgentToolResultErrorModel"},{"$ref":"#/components/schemas/TransferToNumberResultTwilioSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultSipSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultExotelSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultErrorModel"},{"$ref":"#/components/schemas/SkipTurnToolResponseModel"},{"$ref":"#/components/schemas/PlayDTMFResultSuccessModel"},{"$ref":"#/components/schemas/PlayDTMFResultErrorModel"},{"$ref":"#/components/schemas/VoiceMailDetectionResultSuccessModel"},{"$ref":"#/components/schemas/TestToolResultModel"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolResultModel"},{"$ref":"#/components/schemas/RunSubagentToolResultSuccessModel"},{"$ref":"#/components/schemas/RunSubagentToolResultErrorModel"}],"discriminator":{"propertyName":"result_type","mapping":{"end_call_success":"#/components/schemas/EndCallToolResultModel","knowledge_base_rag_success":"#/components/schemas/KnowledgeBaseRagToolResultModel","language_detection_success":"#/components/schemas/LanguageDetectionToolResultModel","play_dtmf_error":"#/components/schemas/PlayDTMFResultErrorModel","play_dtmf_success":"#/components/schemas/PlayDTMFResultSuccessModel","run_subagent_error":"#/components/schemas/RunSubagentToolResultErrorModel","run_subagent_success":"#/components/schemas/RunSubagentToolResultSuccessModel","skip_turn_success":"#/components/schemas/SkipTurnToolResponseModel","testing_tool_result":"#/components/schemas/TestToolResultModel","transfer_to_agent_error":"#/components/schemas/TransferToAgentToolResultErrorModel","transfer_to_agent_success":"#/components/schemas/TransferToAgentToolResultSuccessModel-Input","transfer_to_number_error":"#/components/schemas/TransferToNumberResultErrorModel","transfer_to_number_exotel_success":"#/components/schemas/TransferToNumberResultExotelSuccessModel","transfer_to_number_sip_success":"#/components/schemas/TransferToNumberResultSipSuccessModel","transfer_to_number_twilio_success":"#/components/schemas/TransferToNumberResultTwilioSuccessModel","voicemail_detection_success":"#/components/schemas/VoiceMailDetectionResultSuccessModel"}}},{"type":"null"}],"title":"Result"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptSystemToolResultCommonModel"},"ConversationHistoryTranscriptSystemToolResultCommonModel-Output":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"system","title":"Type"},"result":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/EndCallToolResultModel"},{"$ref":"#/components/schemas/LanguageDetectionToolResultModel"},{"$ref":"#/components/schemas/TransferToAgentToolResultSuccessModel-Output"},{"$ref":"#/components/schemas/TransferToAgentToolResultErrorModel"},{"$ref":"#/components/schemas/TransferToNumberResultTwilioSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultSipSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultExotelSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultErrorModel"},{"$ref":"#/components/schemas/SkipTurnToolResponseModel"},{"$ref":"#/components/schemas/PlayDTMFResultSuccessModel"},{"$ref":"#/components/schemas/PlayDTMFResultErrorModel"},{"$ref":"#/components/schemas/VoiceMailDetectionResultSuccessModel"},{"$ref":"#/components/schemas/TestToolResultModel"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolResultModel"},{"$ref":"#/components/schemas/RunSubagentToolResultSuccessModel"},{"$ref":"#/components/schemas/RunSubagentToolResultErrorModel"}],"discriminator":{"propertyName":"result_type","mapping":{"end_call_success":"#/components/schemas/EndCallToolResultModel","knowledge_base_rag_success":"#/components/schemas/KnowledgeBaseRagToolResultModel","language_detection_success":"#/components/schemas/LanguageDetectionToolResultModel","play_dtmf_error":"#/components/schemas/PlayDTMFResultErrorModel","play_dtmf_success":"#/components/schemas/PlayDTMFResultSuccessModel","run_subagent_error":"#/components/schemas/RunSubagentToolResultErrorModel","run_subagent_success":"#/components/schemas/RunSubagentToolResultSuccessModel","skip_turn_success":"#/components/schemas/SkipTurnToolResponseModel","testing_tool_result":"#/components/schemas/TestToolResultModel","transfer_to_agent_error":"#/components/schemas/TransferToAgentToolResultErrorModel","transfer_to_agent_success":"#/components/schemas/TransferToAgentToolResultSuccessModel-Output","transfer_to_number_error":"#/components/schemas/TransferToNumberResultErrorModel","transfer_to_number_exotel_success":"#/components/schemas/TransferToNumberResultExotelSuccessModel","transfer_to_number_sip_success":"#/components/schemas/TransferToNumberResultSipSuccessModel","transfer_to_number_twilio_success":"#/components/schemas/TransferToNumberResultTwilioSuccessModel","voicemail_detection_success":"#/components/schemas/VoiceMailDetectionResultSuccessModel"}}},{"type":"null"}],"title":"Result"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptSystemToolResultCommonModel"},"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Input":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"},"webhook_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}},"required":["webhook_details"],"title":"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails"},"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"},"webhook_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}},"required":["type","integration_id","credential_id","integration_connection_id","webhook_details"],"title":"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails"},"ConversationHistoryTranscriptToolCallClientDetails":{"type":"object","properties":{"type":{"type":"string","default":"client","const":"client","title":"Type"},"parameters":{"title":"Parameters","type":"string"}},"required":["parameters"],"title":"ConversationHistoryTranscriptToolCallClientDetails"},"ConversationHistoryTranscriptToolCallCommonModel-Input":{"type":"object","properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/ToolType"},{"type":"null"}]},"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"params_as_json":{"type":"string","title":"Params As Json"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_details":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Input"}],"discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Input","client":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails","mcp":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails","webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}}},{"type":"null"}],"title":"Tool Details"}},"required":["request_id","tool_name","params_as_json","tool_has_been_called"],"title":"ConversationHistoryTranscriptToolCallCommonModel"},"ConversationHistoryTranscriptToolCallCommonModel-Output":{"type":"object","properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/ToolType"},{"type":"null"}]},"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"params_as_json":{"type":"string","title":"Params As Json"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_details":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output"}],"discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output","client":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails","mcp":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails","webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}}},{"type":"null"}],"title":"Tool Details"}},"required":["request_id","tool_name","params_as_json","tool_has_been_called"],"title":"ConversationHistoryTranscriptToolCallCommonModel"},"ConversationHistoryTranscriptToolCallMCPDetails":{"type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"mcp_server_id":{"type":"string","title":"Mcp Server Id"},"mcp_server_name":{"type":"string","title":"Mcp Server Name"},"integration_type":{"type":"string","title":"Integration Type"},"parameters":{"additionalProperties":{"type":"string"},"title":"Parameters","type":"object"},"approval_policy":{"type":"string","title":"Approval Policy"},"requires_approval":{"type":"boolean","default":false,"title":"Requires Approval"},"mcp_tool_name":{"type":"string","default":"","title":"Mcp Tool Name"},"mcp_tool_description":{"type":"string","default":"","title":"Mcp Tool Description"}},"required":["mcp_server_id","mcp_server_name","integration_type","approval_policy"],"title":"ConversationHistoryTranscriptToolCallMCPDetails"},"ConversationHistoryTranscriptToolCallWebhookDetails":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"method":{"type":"string","title":"Method"},"url":{"type":"string","title":"Url"},"headers":{"type":"object","additionalProperties":{"type":"string"},"title":"Headers"},"path_params":{"type":"object","additionalProperties":{"type":"string"},"title":"Path Params"},"query_params":{"type":"object","additionalProperties":{"type":"string"},"title":"Query Params"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"}},"required":["method","url"],"title":"ConversationHistoryTranscriptToolCallWebhookDetails"},"ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Input":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"workflow","title":"Type"},"result":{"anyOf":[{"$ref":"#/components/schemas/WorkflowToolResponseModel-Input"},{"type":"null"}]}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptWorkflowToolsResultCommonModel"},"ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"workflow","title":"Type"},"result":{"anyOf":[{"$ref":"#/components/schemas/WorkflowToolResponseModel-Output"},{"type":"null"}]}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptWorkflowToolsResultCommonModel"},"ConversationHistoryTwilioPhoneCallModel":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"agent_number":{"type":"string","title":"Agent Number"},"external_number":{"type":"string","title":"External Number"},"type":{"type":"string","const":"twilio","title":"Type"},"stream_sid":{"type":"string","title":"Stream Sid"},"call_sid":{"type":"string","title":"Call Sid"}},"required":["direction","phone_number_id","agent_number","external_number","type","stream_sid","call_sid"],"title":"ConversationHistoryTwilioPhoneCallModel"},"ConversationInitiationClientDataConfig-Input":{"type":"object","properties":{"conversation_config_override":{"description":"Overrides for the conversation configuration","$ref":"#/components/schemas/ConversationConfigClientOverrideConfig-Input"},"custom_llm_extra_body":{"description":"Whether to include custom LLM extra body","type":"boolean","default":false,"title":"Custom Llm Extra Body"},"enable_conversation_initiation_client_data_from_webhook":{"description":"Whether to enable conversation initiation client data from webhooks","type":"boolean","default":false,"title":"Enable Conversation Initiation Client Data From Webhook"},"enable_starting_workflow_node_id_from_client":{"description":"Whether clients may pass starting_workflow_node_id in initiation client data; if false, sending it fails conversation start.","type":"boolean","default":false,"title":"Enable Starting Workflow Node Id From Client"}},"example":{"custom_llm_extra_body":true,"enable_conversation_initiation_client_data_from_webhook":true,"enable_starting_workflow_node_id_from_client":true},"title":"ConversationInitiationClientDataConfig"},"ConversationInitiationClientDataConfig-Output":{"type":"object","properties":{"conversation_config_override":{"description":"Overrides for the conversation configuration","$ref":"#/components/schemas/ConversationConfigClientOverrideConfig-Output"},"custom_llm_extra_body":{"description":"Whether to include custom LLM extra body","type":"boolean","default":false,"title":"Custom Llm Extra Body"},"enable_conversation_initiation_client_data_from_webhook":{"description":"Whether to enable conversation initiation client data from webhooks","type":"boolean","default":false,"title":"Enable Conversation Initiation Client Data From Webhook"},"enable_starting_workflow_node_id_from_client":{"description":"Whether clients may pass starting_workflow_node_id in initiation client data; if false, sending it fails conversation start.","type":"boolean","default":false,"title":"Enable Starting Workflow Node Id From Client"}},"example":{"custom_llm_extra_body":true,"enable_conversation_initiation_client_data_from_webhook":true,"enable_starting_workflow_node_id_from_client":true},"title":"ConversationInitiationClientDataConfig"},"ConversationInitiationClientDataInternal":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverride-Output"},"custom_llm_extra_body":{"type":"object","additionalProperties":true,"title":"Custom Llm Extra Body"},"user_id":{"description":"ID of the end user participating in this conversation (for agent owner's user identification)","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"description":"ID of the agent branch to use for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"description":"Environment to use for resolving environment variables","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"starting_workflow_node_id":{"description":"If set, start the workflow at this node id instead of the default entry","anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Workflow Node Id"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior","$ref":"#/components/schemas/OrchestratorToolMockBehaviorConfig"}},"title":"ConversationInitiationClientDataInternal"},"ConversationInitiationClientDataRequest-Input":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverride-Input"},"custom_llm_extra_body":{"type":"object","additionalProperties":true,"title":"Custom Llm Extra Body"},"user_id":{"description":"ID of the end user participating in this conversation (for agent owner's user identification)","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"description":"ID of the agent branch to use for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"description":"Environment to use for resolving environment variables","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"starting_workflow_node_id":{"description":"If set, start the workflow at this node id instead of the default entry","anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Workflow Node Id"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"}},"title":"ConversationInitiationClientDataRequest"},"ConversationInitiationClientDataRequest-Output":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverride-Output"},"custom_llm_extra_body":{"type":"object","additionalProperties":true,"title":"Custom Llm Extra Body"},"user_id":{"description":"ID of the end user participating in this conversation (for agent owner's user identification)","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"description":"ID of the agent branch to use for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"description":"Environment to use for resolving environment variables","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"starting_workflow_node_id":{"description":"If set, start the workflow at this node id instead of the default entry","anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Workflow Node Id"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"}},"title":"ConversationInitiationClientDataRequest"},"ConversationInitiationClientDataWebhook":{"type":"object","properties":{"url":{"description":"The URL to send the webhook to","type":"string","title":"Url"},"request_headers":{"description":"The headers to send with the webhook request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"}]},"title":"Request Headers"}},"example":{"request_headers":{"Content-Type":"application/json"},"url":"https://example.com/webhook"},"required":["url","request_headers"],"title":"ConversationInitiationClientDataWebhook"},"ConversationInitiationSource":{"description":"Enum representing the possible sources for conversation initiation.","type":"string","default":"unknown","enum":["unknown","android_sdk","node_js_sdk","react_native_sdk","react_sdk","js_sdk","python_sdk","widget","sip_trunk","twilio","exotel","genesys","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"],"title":"ConversationInitiationSource"},"ConversationInitiationSourceInfo":{"description":"Information about the source of conversation initiation","type":"object","properties":{"source":{"description":"Source of the conversation initiation","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"version":{"description":"The SDK version number","anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Version"}},"title":"ConversationInitiationSourceInfo"},"ConversationProduct":{"description":"Which product surface owns this agent document.","type":"string","enum":["agents","speech_engine"],"title":"ConversationProduct"},"ConversationReasoningModel":{"type":"object","properties":{"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"provider_redact":{"type":"boolean","default":false,"title":"Provider Redact"}},"title":"ConversationReasoningModel"},"ConversationSentimentAnalysis":{"type":"object","properties":{"overall_label":{"type":"string","enum":["positive","neutral","negative"],"title":"Overall Label"},"overall_sentiment_score":{"type":"number","maximum":1,"minimum":-1,"title":"Overall Sentiment Score"},"overall_frustration_score":{"type":"number","maximum":1,"minimum":0,"title":"Overall Frustration Score"},"min_user_sentiment_score":{"type":"number","maximum":1,"minimum":-1,"title":"Min User Sentiment Score"},"max_user_frustration_score":{"type":"number","maximum":1,"minimum":0,"title":"Max User Frustration Score"},"num_scored_user_turns":{"type":"integer","minimum":0,"title":"Num Scored User Turns"}},"required":["overall_label","overall_sentiment_score","overall_frustration_score","min_user_sentiment_score","max_user_frustration_score","num_scored_user_turns"],"title":"ConversationSentimentAnalysis"},"ConversationSignedUrlResponseModel":{"type":"object","properties":{"signed_url":{"type":"string","title":"Signed Url"}},"required":["signed_url"],"title":"ConversationSignedUrlResponseModel"},"ConversationSimulationSpecification":{"description":"A specification that will be used to simulate a conversation between an agent and an AI user.","type":"object","properties":{"simulated_user_config":{"$ref":"#/components/schemas/AgentConfigAPIModel-Input"},"tool_mock_config":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ToolMockConfig"},"title":"Tool Mock Config"},"partial_conversation_history":{"description":"A partial conversation history to start the simulation from. If empty, simulation starts fresh.","type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"title":"Partial Conversation History"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"}},"required":["simulated_user_config"],"title":"ConversationSimulationSpecification"},"ConversationSource":{"type":"object","properties":{"type":{"type":"string","default":"conversation","const":"conversation","title":"Type"},"conversation_id":{"type":"string","title":"Conversation Id"}},"required":["conversation_id"],"title":"ConversationSource"},"ConversationSummaryResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"conversation_id":{"type":"string","title":"Conversation Id"},"start_time_unix_secs":{"type":"integer","title":"Start Time Unix Secs"},"call_duration_secs":{"type":"integer","title":"Call Duration Secs"},"message_count":{"type":"integer","title":"Message Count"},"status":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"Status"},"termination_reason":{"type":"string","default":"","title":"Termination Reason"},"call_successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"call_success_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Call Success Score"},"transcript_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript Summary"},"call_summary_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Summary Title"},"main_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Language"},"conversation_initiation_source":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"tool_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Names"},"direction":{"anyOf":[{"$ref":"#/components/schemas/TelephonyDirection"},{"type":"null"}]},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"sentiment_analysis":{"anyOf":[{"$ref":"#/components/schemas/ConversationSentimentAnalysis"},{"type":"null"}]}},"required":["agent_id","conversation_id","start_time_unix_secs","call_duration_secs","message_count","status","call_successful"],"title":"ConversationSummaryResponseModel"},"ConversationTTSUsageModel":{"description":"Aggregated TTS usage for a conversation (analytics-only, not billing).","type":"object","properties":{"primary_tts_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Tts Model"},"total_audio_output_seconds":{"type":"number","default":0,"title":"Total Audio Output Seconds"},"total_characters":{"type":"integer","default":0,"title":"Total Characters"},"per_voice_usage":{"type":"array","items":{"$ref":"#/components/schemas/ConversationVoiceUsageModel"},"title":"Per Voice Usage"}},"title":"ConversationTTSUsageModel"},"ConversationTagResponseModel":{"type":"object","properties":{"tag_id":{"type":"string","title":"Tag Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"owner_user_id":{"type":"string","title":"Owner User Id"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"}},"required":["tag_id","workspace_id","owner_user_id","title","description","created_at_unix_secs"],"title":"ConversationTagResponseModel"},"ConversationTokenPurpose":{"type":"string","enum":["signed_url","shareable_link"],"title":"ConversationTokenPurpose"},"ConversationTokenResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"conversation_token":{"description":"The token for the agent","type":"string","title":"Conversation Token"},"expiration_time_unix_secs":{"description":"The expiration time of the token in unix seconds","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expiration Time Unix Secs"},"conversation_id":{"description":"The ID of the conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"purpose":{"description":"The purpose of the token","$ref":"#/components/schemas/ConversationTokenPurpose"},"token_requester_user_id":{"description":"The user ID of the entity who requested the token","anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Requester User Id"}},"required":["agent_id","conversation_token","purpose"],"title":"ConversationTokenResponseModel"},"ConversationTurnMetrics":{"type":"object","properties":{"metrics":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MetricRecord"},"title":"Metrics"},"convai_asr_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Convai Asr Provider"},"convai_tts_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Convai Tts Model"},"convai_tts_cascade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Convai Tts Cascade"}},"title":"ConversationTurnMetrics"},"ConversationUserResponseModel":{"type":"object","properties":{"user_id":{"type":"string","title":"User Id"},"last_contact_unix_secs":{"type":"integer","title":"Last Contact Unix Secs"},"first_contact_unix_secs":{"type":"integer","title":"First Contact Unix Secs"},"conversation_count":{"type":"integer","title":"Conversation Count"},"last_contact_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Contact Agent Id"},"last_contact_conversation_id":{"type":"string","title":"Last Contact Conversation Id"},"last_contact_agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Contact Agent Name"},"sentiment":{"$ref":"#/components/schemas/SentimentAggregate"},"most_frustrated_conversations":{"type":"array","items":{"$ref":"#/components/schemas/FrustratedConversationRef"},"title":"Most Frustrated Conversations"}},"required":["user_id","last_contact_unix_secs","first_contact_unix_secs","conversation_count","last_contact_conversation_id","sentiment"],"title":"ConversationUserResponseModel"},"ConversationVoiceRewardModel":{"type":"object","properties":{"voice_id":{"type":"string","title":"Voice Id"},"reward_usd_cents":{"type":"number","title":"Reward Usd Cents"}},"required":["voice_id","reward_usd_cents"],"title":"ConversationVoiceRewardModel"},"ConversationVoiceUsageModel":{"type":"object","properties":{"voice_id":{"type":"string","title":"Voice Id"},"audio_output_seconds":{"type":"number","default":0,"title":"Audio Output Seconds"}},"required":["voice_id"],"title":"ConversationVoiceUsageModel"},"ConversationalConfigAPIModel-Input":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","$ref":"#/components/schemas/ASRConversationalConfig"},"turn":{"description":"Configuration for turn detection","$ref":"#/components/schemas/TurnConfig"},"tts":{"description":"Configuration for conversational text to speech","$ref":"#/components/schemas/TTSConversationalConfig-Input"},"conversation":{"description":"Configuration for conversational events","$ref":"#/components/schemas/ConversationConfig-Input"},"language_presets":{"description":"Language presets for conversations","type":"object","additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Input"},"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","$ref":"#/components/schemas/VADConfig"},"agent":{"description":"Agent specific configuration","$ref":"#/components/schemas/AgentConfigAPIModel-Input"}},"title":"ConversationalConfigAPIModel","x-fern-type-name":"ConversationalConfig"},"ConversationalConfigAPIModel-Output":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","$ref":"#/components/schemas/ASRConversationalConfig"},"turn":{"description":"Configuration for turn detection","$ref":"#/components/schemas/TurnConfig"},"tts":{"description":"Configuration for conversational text to speech","$ref":"#/components/schemas/TTSConversationalConfig-Output"},"conversation":{"description":"Configuration for conversational events","$ref":"#/components/schemas/ConversationConfig-Output"},"language_presets":{"description":"Language presets for conversations","type":"object","additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Output"},"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","$ref":"#/components/schemas/VADConfig"},"agent":{"description":"Agent specific configuration","$ref":"#/components/schemas/AgentConfigAPIModel-Output"}},"title":"ConversationalConfigAPIModel","x-fern-type-name":"ConversationalConfig"},"ConversationalConfigAPIModelWorkflowOverride-Input":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigWorkflowOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigWorkflowOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigWorkflowOverride-Input"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigWorkflowOverride-Input"},{"type":"null"}]},"language_presets":{"description":"Language presets for conversations","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Input"},"type":"object"},{"type":"null"}],"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","anyOf":[{"$ref":"#/components/schemas/VADConfigWorkflowOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigAPIModelWorkflowOverride-Input"},{"type":"null"}]}},"example":{"agent":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"asr":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"conversation":{"client_events":["audio","interruption"],"max_duration_seconds":600},"tts":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"vad":{"background_voice_detection":false}},"title":"ConversationalConfigAPIModelWorkflowOverride"},"ConversationalConfigAPIModelWorkflowOverride-Output":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigWorkflowOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigWorkflowOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigWorkflowOverride-Output"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigWorkflowOverride-Output"},{"type":"null"}]},"language_presets":{"description":"Language presets for conversations","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Output"},"type":"object"},{"type":"null"}],"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","anyOf":[{"$ref":"#/components/schemas/VADConfigWorkflowOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigAPIModelWorkflowOverride-Output"},{"type":"null"}]}},"example":{"agent":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"asr":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"conversation":{"client_events":["audio","interruption"],"max_duration_seconds":600},"tts":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"vad":{"background_voice_detection":false}},"title":"ConversationalConfigAPIModelWorkflowOverride"},"ConvertChapterResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio chapter conversion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"ConvertChapterResponseModel"},"ConvertProjectResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio project conversion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"ConvertProjectResponseModel"},"CrawlStatus":{"type":"string","default":"queued","enum":["queued","processing","succeeded","failed","skipped","cancelled"],"title":"CrawlStatus"},"CreateAgentBranchResponseModel":{"type":"object","properties":{"created_branch_id":{"description":"ID of the created branch","type":"string","title":"Created Branch Id"},"created_version_id":{"description":"ID of the first version on the created branch","type":"string","title":"Created Version Id"}},"required":["created_branch_id","created_version_id"],"title":"CreateAgentBranchResponseModel"},"CreateAgentProcedureParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_agent_procedure","const":"create_agent_procedure","title":"Smb Tool Type"}},"title":"CreateAgentProcedureParams"},"CreateAgentResponseModel":{"type":"object","properties":{"agent_id":{"description":"ID of the created agent","type":"string","title":"Agent Id"}},"example":{"agent_id":"J3Pbu5gP6NNKBscdCdwB"},"required":["agent_id"],"title":"CreateAgentResponseModel"},"CreateAgentRuleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_agent_rule","const":"create_agent_rule","title":"Smb Tool Type"}},"title":"CreateAgentRuleParams"},"CreateAgentTestFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"CreateAgentTestFolderResponseModel"},"CreateAgentTestResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"}},"required":["id"],"title":"CreateAgentTestResponseModel"},"CreateAssetParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_asset","const":"create_asset","title":"Smb Tool Type"}},"title":"CreateAssetParams"},"CreateAuthConnectionEnvironmentVariableRequest":{"type":"object","properties":{"type":{"type":"string","const":"auth_connection","title":"Type"},"label":{"description":"Unique label for the environment variable.","type":"string","title":"Label"},"values":{"description":"Environment-specific auth connection references. Must include 'production' key.","type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValueRequest"},"title":"Values"}},"required":["type","label","values"],"title":"CreateAuthConnectionEnvironmentVariableRequest"},"CreateBasicAuthRequest":{"description":"Request model for creating Basic Auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"basic_auth","const":"basic_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"required":["name","provider","username","password"],"title":"CreateBasicAuthRequest"},"CreateBearerAuthRequest":{"description":"Request model for creating Bearer Auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"bearer_auth","const":"bearer_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"token":{"type":"string","title":"Token"}},"required":["name","provider","token"],"title":"CreateBearerAuthRequest"},"CreateClientAppointmentParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_client_appointment","const":"create_client_appointment","title":"Smb Tool Type"}},"title":"CreateClientAppointmentParams"},"CreateClientInteractionParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_client_interaction","const":"create_client_interaction","title":"Smb Tool Type"}},"title":"CreateClientInteractionParams"},"CreateClientParams":{"description":"Create a new client in the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_client","const":"create_client","title":"Smb Tool Type"}},"title":"CreateClientParams"},"CreateConversationTagRequestModel":{"type":"object","properties":{"title":{"description":"Display title of the tag.","type":"string","maxLength":120,"minLength":1,"title":"Title"},"description":{"description":"Optional free-text description.","anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"required":["title"],"title":"CreateConversationTagRequestModel"},"CreateCustomHeaderAuthRequest":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"custom_header_auth","const":"custom_header_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"header_name":{"description":"The name of the header to use for authentication (e.g., 'x-api-key')","type":"string","title":"Header Name"},"token":{"type":"string","title":"Token"}},"required":["name","provider","header_name","token"],"title":"CreateCustomHeaderAuthRequest"},"CreateExotelPhoneNumberRequest":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"provider":{"type":"string","default":"exotel","const":"exotel","title":"Provider"},"agent_id":{"description":"Agent ID to assign the phone number to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"account_sid":{"description":"Exotel Account SID","type":"string","title":"Account Sid"},"api_key":{"description":"Exotel API Key","type":"string","title":"Api Key"},"api_token":{"description":"Exotel API Token","type":"string","title":"Api Token"},"api_subdomain":{"description":"Exotel region-specific API host","$ref":"#/components/schemas/ExotelApiSubdomain"},"app_id":{"description":"Exotel applet identifier used in Calls/connect","type":"string","title":"App Id"},"applet_url":{"description":"Optional full applet URL override. Defaults to Exotel start_voice URL derived from account SID and app ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Applet Url"}},"example":{"account_sid":"your-account-sid","api_key":"your-api-key","api_subdomain":"api.in.exotel.com","api_token":"********","app_id":"12345","label":"Exotel Outbound","phone_number":"+919999999999","provider":"exotel"},"required":["phone_number","label","account_sid","api_key","api_token","api_subdomain","app_id"],"title":"CreateExotelPhoneNumberRequest"},"CreateHolidayParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_holiday","const":"create_holiday","title":"Smb Tool Type"}},"title":"CreateHolidayParams"},"CreateLocationParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_location","const":"create_location","title":"Smb Tool Type"}},"title":"CreateLocationParams"},"CreateMTLSAuthRequest":{"description":"Request model for creating mTLS auth connections.","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"mtls","const":"mtls","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_certificate":{"type":"string","title":"Client Certificate"},"client_key":{"type":"string","title":"Client Key"},"ca_certificate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ca Certificate"},"key_passphrase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Passphrase"}},"required":["name","provider","client_certificate","client_key"],"title":"CreateMTLSAuthRequest"},"CreateOAuth2ClientCredsRequest":{"description":"Request model for creating auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_client_credentials","const":"oauth2_client_credentials","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_id":{"type":"string","title":"Client Id"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"default":[],"title":"Scopes"},"extra_params":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Extra Params"},"basic_auth_in_header":{"description":"If True, send client credentials in Authorization header as Basic Auth instead of request body","type":"boolean","default":false,"title":"Basic Auth In Header"},"client_secret":{"type":"string","title":"Client Secret"},"custom_headers":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Custom Headers"}},"required":["name","provider","client_id","token_url","client_secret"],"title":"CreateOAuth2ClientCredsRequest"},"CreateOAuth2JWTRequest":{"description":"Request model for creating OAuth2 JWT auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_jwt","const":"oauth2_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"token_url":{"description":"Token endpoint URL for exchanging JWT for access token","type":"string","title":"Token Url"},"scopes":{"description":"OAuth2 scopes to request when exchanging JWT for access token","type":"array","items":{"type":"string"},"title":"Scopes"},"token_response_field":{"description":"Token field to extract from the token endpoint response.","type":"string","default":"access_token","enum":["access_token","id_token"],"title":"Token Response Field"},"secret_key":{"type":"string","title":"Secret Key"}},"required":["name","provider","issuer","audience","subject","token_url","secret_key"],"title":"CreateOAuth2JWTRequest"},"CreateOrderRequest":{"type":"object","properties":{"sandbox":{"description":"When true, creates a sandbox order that auto-progresses without producer intervention.","type":"boolean","default":false,"title":"Sandbox"}},"example":{"sandbox":false},"title":"CreateOrderRequest"},"CreateOrderResponse":{"type":"object","properties":{"order_id":{"description":"The ID of the newly created order.","$ref":"#/components/schemas/OrderId"},"sandbox":{"description":"Whether this is a sandbox order.","type":"boolean","default":false,"title":"Sandbox"}},"example":{"order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","sandbox":false},"required":["order_id"],"title":"CreateOrderResponse"},"CreatePhoneNumberResponseModel":{"type":"object","properties":{"phone_number_id":{"description":"Phone entity ID","type":"string","title":"Phone Number Id"}},"required":["phone_number_id"],"title":"CreatePhoneNumberResponseModel"},"CreatePrivateKeyJWTRequest":{"description":"Request model for creating Private Key JWT auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"private_key_jwt","const":"private_key_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"secret_key":{"type":"string","title":"Secret Key"}},"required":["name","provider","issuer","audience","subject","secret_key"],"title":"CreatePrivateKeyJWTRequest"},"CreateProductParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_product","const":"create_product","title":"Smb Tool Type"}},"title":"CreateProductParams"},"CreatePronunciationDictionaryResponseModel":{"type":"object","properties":{"status":{"description":"The status of the create pronunciation dictionary request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"CreatePronunciationDictionaryResponseModel"},"CreateResponseUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"CreateResponseUnitTestRequest"},"CreateSIPTrunkPhoneNumberRequestV2":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"provider":{"type":"string","default":"sip_trunk","const":"sip_trunk","title":"Provider"},"agent_id":{"description":"Agent ID to assign the phone number to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"inbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/InboundSIPTrunkConfigRequestModel"},{"type":"null"}]},"outbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/OutboundSIPTrunkConfigRequestModel"},{"type":"null"}]}},"required":["phone_number","label"],"title":"CreateSIPTrunkPhoneNumberRequestV2","x-fern-type-name":"CreateSIPTrunkPhoneNumberRequest"},"CreateSecretEnvironmentVariableRequest":{"type":"object","properties":{"type":{"type":"string","const":"secret","title":"Type"},"label":{"description":"Unique label for the environment variable.","type":"string","title":"Label"},"values":{"description":"Environment-specific secret references. Must include 'production' key.","type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableSecretValueRequest"},"title":"Values"}},"required":["type","label","values"],"title":"CreateSecretEnvironmentVariableRequest"},"CreateServiceParams":{"description":"Create a new service (classic, rental, or group) in the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_service","const":"create_service","title":"Smb Tool Type"}},"title":"CreateServiceParams"},"CreateSimulationTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"CreateSimulationTestRequest"},"CreateSpeechEngineRequest":{"type":"object","properties":{"name":{"description":"Name of the speech engine","type":"string","default":"Speech Engine","title":"Name"},"speech_engine":{"description":"Speech engine WebSocket configuration","$ref":"#/components/schemas/SpeechEngineConfig"},"asr":{"description":"ASR configuration","$ref":"#/components/schemas/ASRConversationalConfig"},"tts":{"description":"TTS configuration","$ref":"#/components/schemas/TTSConversationalConfig-Input"},"turn":{"description":"Turn detection configuration","$ref":"#/components/schemas/BaseTurnConfig"},"conversation":{"description":"Conversation configuration (client events, etc.)","$ref":"#/components/schemas/ConversationConfig-Input"},"privacy":{"description":"Privacy settings (recording, retention, zero retention mode)","$ref":"#/components/schemas/PrivacyConfig-Input"},"call_limits":{"description":"Concurrency and daily conversation limits for this speech engine","$ref":"#/components/schemas/AgentCallLimits"},"language":{"description":"Language for the speech engine","type":"string","default":"en","title":"Language"},"tags":{"description":"Tags for categorization","type":"array","items":{"type":"string"},"title":"Tags"},"overrides":{"description":"Override settings the client may set during conversation initiation","$ref":"#/components/schemas/SpeechEngineConversationInitiationClientDataConfig"}},"required":["speech_engine"],"title":"CreateSpeechEngineRequest"},"CreateStaffParams":{"description":"Create a new staff member in the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_staff","const":"create_staff","title":"Smb Tool Type"}},"title":"CreateStaffParams"},"CreateStringEnvironmentVariableRequest":{"type":"object","properties":{"type":{"type":"string","const":"string","title":"Type"},"label":{"description":"Unique label for the environment variable.","type":"string","title":"Label"},"values":{"description":"Environment-specific values. Must include 'production' key.","type":"object","additionalProperties":{"type":"string","minLength":1},"title":"Values"}},"required":["type","label","values"],"title":"CreateStringEnvironmentVariableRequest"},"CreateToolCallUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Input"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"CreateToolCallUnitTestRequest"},"CreateTwilioPhoneNumberRequest":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"provider":{"type":"string","default":"twilio","const":"twilio","title":"Provider"},"agent_id":{"description":"Agent ID to assign the phone number to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"sid":{"description":"Twilio Account SID","type":"string","title":"Sid"},"token":{"description":"Twilio Auth Token","type":"string","title":"Token"},"region_config":{"description":"Twilio Additional Region Configuration","anyOf":[{"$ref":"#/components/schemas/RegionConfigRequest"},{"type":"null"}]},"enable_sms":{"description":"Route inbound SMS to ElevenLabs. On by default; set to false to skip SMS configuration for numbers that don't support it.","type":"boolean","default":true,"title":"Enable Sms"}},"required":["phone_number","label","sid","token"],"title":"CreateTwilioPhoneNumberRequest"},"CriteriaScoringMode":{"type":"string","default":"binary","enum":["binary","numeric_uniform"],"title":"CriteriaScoringMode"},"CueOptionsRequest":{"type":"object","properties":{"min_duration_ms":{"description":"Minimum duration of each cue in milliseconds.","type":"integer","default":1000,"maximum":2000,"title":"Min Duration Ms"},"max_duration_ms":{"description":"Maximum duration of each cue in milliseconds.","type":"integer","default":7000,"minimum":4000,"title":"Max Duration Ms"},"max_lines_per_cue":{"description":"Maximum number of lines per cue.","type":"integer","default":2,"maximum":3,"minimum":1,"title":"Max Lines Per Cue"},"max_chars_per_line":{"description":"Maximum number of characters per line in a cue.","type":"integer","default":42,"maximum":50,"minimum":16,"title":"Max Chars Per Line"},"max_chars_per_s":{"description":"Maximum characters per second reading speed. If not set, no reading speed limit is applied.","anyOf":[{"type":"integer","maximum":30,"minimum":15},{"type":"null"}],"title":"Max Chars Per S"},"min_gap_between_cues_frames":{"description":"Minimum gap between consecutive cues in frames. If not set, no minimum gap is enforced.","anyOf":[{"type":"integer","maximum":6,"minimum":0},{"type":"null"}],"title":"Min Gap Between Cues Frames"}},"example":{"max_chars_per_line":42,"max_duration_ms":7000,"max_lines_per_cue":2,"min_duration_ms":1000},"title":"CueOptionsRequest"},"Currency":{"type":"string","enum":["usd","eur","inr","pln"],"title":"Currency"},"CustomGuardrail-Input":{"description":"Container for custom guardrails, matching ModerationGuardrail pattern","type":"object","properties":{"config":{"$ref":"#/components/schemas/CustomGuardrailsConfig-Input"}},"title":"CustomGuardrail"},"CustomGuardrail-Output":{"description":"Container for custom guardrails, matching ModerationGuardrail pattern","type":"object","properties":{"config":{"$ref":"#/components/schemas/CustomGuardrailsConfig-Output"}},"title":"CustomGuardrail"},"CustomGuardrailConfig":{"description":"Single custom guardrail configuration","type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"},"name":{"description":"User-facing name for this guardrail","type":"string","maxLength":500,"minLength":1,"title":"Name"},"prompt":{"description":"Instruction describing what to block, e.g. 'don't talk about politics'","type":"string","maxLength":10000,"minLength":1,"title":"Prompt"},"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"model":{"description":"LLM model to use for custom guardrail evaluation","type":"string","default":"gemini-2.5-flash-lite","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"],"title":"Model"},"history_message_count":{"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 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.","type":"integer","default":0,"maximum":100,"minimum":0,"title":"History Message Count"},"history_include_tool_calls":{"description":"When enabled, the history also renders the agent's tool calls, their input arguments, and the tool results, interleaved with the text, so an action between two agent messages is visible. Off by default: history shows only user and agent text. Tool payloads can be large and can mislead smaller evaluator models, so enabling this raises token cost.","type":"boolean","default":false,"title":"History Include Tool Calls","x-fern-ignore":true},"trigger_action":{"discriminator":{"propertyName":"type","mapping":{"end_call":"#/components/schemas/EndCallTriggerAction","retry":"#/components/schemas/RetryTriggerAction"}},"oneOf":[{"$ref":"#/components/schemas/EndCallTriggerAction"},{"$ref":"#/components/schemas/RetryTriggerAction"}],"title":"Trigger Action"},"evaluate_full_response_only":{"description":"Evaluate once against the complete non-TTS response instead of cumulative partials. Requires blocking mode.","type":"boolean","default":false,"title":"Evaluate Full Response Only"}},"required":["name","prompt"],"title":"CustomGuardrailConfig"},"CustomGuardrailsConfig-Input":{"description":"Config container for custom guardrails list","type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Configs"}},"title":"CustomGuardrailsConfig"},"CustomGuardrailsConfig-Output":{"description":"Config container for custom guardrails list","type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Configs"}},"title":"CustomGuardrailsConfig"},"CustomHeaderAuthResponse":{"description":"Response model for Custom Header Auth auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"custom_header_auth","const":"custom_header_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"header_name":{"description":"The name of the header to use for authentication (e.g., 'x-api-key')","type":"string","title":"Header Name"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","header_name","id"],"title":"CustomHeaderAuthResponse"},"CustomLLM":{"type":"object","properties":{"url":{"description":"The URL of the Chat Completions compatible endpoint","type":"string","title":"Url"},"model_id":{"description":"The model ID to be used if URL serves multiple models","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"api_key":{"description":"The API key for authentication. Either a workspace secret reference {'secret_id': '...'} or an environment variable reference {'env_var_label': '...'}.","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"},{"type":"null"}],"title":"Api Key"},"auth_connection":{"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.","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"},"request_headers":{"description":"Headers that should be included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"api_version":{"description":"The API version to use for the request","anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Version"},"api_type":{"description":"The API type to use (chat_completions or responses)","default":"chat_completions","$ref":"#/components/schemas/CustomLLMAPIType"}},"required":["url"],"title":"CustomLLM"},"CustomLLMAPIType":{"type":"string","default":"chat_completions","enum":["chat_completions","responses"],"title":"CustomLLMAPIType"},"CustomSIPHeader":{"description":"Custom SIP header for phone transfers with a static (validated) value.","type":"object","properties":{"type":{"type":"string","default":"static","const":"static","title":"Type"},"key":{"description":"The SIP header name (e.g., 'X-Customer-ID')","type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","title":"Key"},"value":{"description":"The header value","type":"string","maxLength":512,"minLength":1,"pattern":"^[\\x09\\x20-\\x7E]+$","title":"Value"}},"required":["key","value"],"title":"CustomSIPHeader"},"CustomSIPHeaderWithDynamicVariable":{"description":"Custom SIP header for phone transfers with a dynamic variable reference.\nThe value is a variable name that will be resolved at runtime.\nValue is not validated here since it will be substituted with actual value later.","type":"object","properties":{"type":{"type":"string","const":"dynamic","title":"Type"},"key":{"description":"The SIP header name (e.g., 'X-Customer-ID')","type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","title":"Key"},"value":{"description":"The dynamic variable name to resolve","type":"string","minLength":1,"title":"Value"}},"required":["type","key","value"],"title":"CustomSIPHeaderWithDynamicVariable"},"DTMFInputConfig":{"description":"Configuration for DTMF (keypad) input collection during phone calls.","type":"object","properties":{"dtmf_input_timeout":{"description":"Timeout in seconds to wait for additional DTMF digits","type":"number","default":2,"maximum":10,"minimum":0.5,"title":"Dtmf Input Timeout"},"hash_terminator":{"description":"If true, pressing # immediately completes DTMF input","type":"boolean","default":true,"title":"Hash Terminator"}},"title":"DTMFInputConfig"},"DashboardCallSuccessChartModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"call_success","const":"call_success","title":"Type"}},"required":["name"],"title":"DashboardCallSuccessChartModel"},"DashboardCriteriaChartModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"criteria","const":"criteria","title":"Type"},"criteria_id":{"type":"string","title":"Criteria Id"}},"required":["name","criteria_id"],"title":"DashboardCriteriaChartModel"},"DashboardDataCollectionChartModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"data_collection","const":"data_collection","title":"Type"},"data_collection_id":{"type":"string","title":"Data Collection Id"}},"required":["name","data_collection_id"],"title":"DashboardDataCollectionChartModel"},"DataCollectionResultCommonModel":{"type":"object","properties":{"data_collection_id":{"type":"string","title":"Data Collection Id"},"value":{"title":"Value"},"json_schema":{"anyOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"type":"null"}]},"rationale":{"type":"string","title":"Rationale"}},"required":["data_collection_id","rationale"],"title":"DataCollectionResultCommonModel"},"DefaultSharingGroupConfig":{"type":"object","properties":{"group_id":{"description":"The ID of the group to share with","type":"string","title":"Group Id"},"permission_level":{"description":"The permission level to grant to the group","type":"string","enum":["admin","editor","viewer"],"title":"Permission Level"}},"required":["group_id","permission_level"],"title":"DefaultSharingGroupConfig"},"DefaultSharingGroupResponseModel":{"type":"object","properties":{"group":{"description":"The group to share with by default","$ref":"#/components/schemas/WorkspaceGroupResponseModel"},"permission_level":{"description":"The permission level to grant to the group","type":"string","enum":["admin","editor","viewer"],"title":"Permission Level"}},"required":["group","permission_level"],"title":"DefaultSharingGroupResponseModel"},"DeleteAgentProcedureParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_agent_procedure","const":"delete_agent_procedure","title":"Smb Tool Type"}},"title":"DeleteAgentProcedureParams"},"DeleteAgentRuleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_agent_rule","const":"delete_agent_rule","title":"Smb Tool Type"}},"title":"DeleteAgentRuleParams"},"DeleteAssetParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_asset","const":"delete_asset","title":"Smb Tool Type"}},"title":"DeleteAssetParams"},"DeleteCalendarEventParams":{"description":"Permanently remove a previously-cancelled calendar event.\n\nThis delete tool is the irreversible follow-up to cancel_calendar_event.\nThe backend rejects the call (422) if the event hasn't been\ncancelled yet, so the only safe path is cancel-then-delete.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_calendar_event","const":"delete_calendar_event","title":"Smb Tool Type"}},"title":"DeleteCalendarEventParams"},"DeleteChapterResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio chapter deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteChapterResponseModel"},"DeleteClientInteractionParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_client_interaction","const":"delete_client_interaction","title":"Smb Tool Type"}},"title":"DeleteClientInteractionParams"},"DeleteClientParams":{"description":"Delete a client, cascading deletion of all their appointments first.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_client","const":"delete_client","title":"Smb Tool Type"}},"title":"DeleteClientParams"},"DeleteDubbingResponseModel":{"type":"object","properties":{"status":{"description":"The status of the dubbing project. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteDubbingResponseModel"},"DeleteGroupSessionParams":{"description":"Permanently remove a previously-cancelled group session.\n\nGroup analogue of ``delete_calendar_event``: cancel\n(``cancel_group_session_for_all``) is the soft, history-preserving step;\nthis tool is the irreversible follow-up that drops the row from Mongo\nand the staff Google Calendar entirely. The backend rejects the call\n(422) if the session hasn't been cancelled yet, so the only safe path\nis cancel-then-delete.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_group_session","const":"delete_group_session","title":"Smb Tool Type"}},"title":"DeleteGroupSessionParams"},"DeleteHistoryItemResponse":{"type":"object","properties":{"status":{"description":"The status of the deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with http code 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteHistoryItemResponse","x-fern-type-name":"DeleteHistoryItemResponse"},"DeleteHolidayParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_holiday","const":"delete_holiday","title":"Smb Tool Type"}},"title":"DeleteHolidayParams"},"DeleteLocationParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_location","const":"delete_location","title":"Smb Tool Type"}},"title":"DeleteLocationParams"},"DeleteProductParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_product","const":"delete_product","title":"Smb Tool Type"}},"title":"DeleteProductParams"},"DeleteProjectResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio project deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteProjectResponseModel"},"DeleteSampleResponseModel":{"type":"object","properties":{"status":{"description":"The status of the sample deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteSampleResponseModel","x-fern-type-name":"DeleteSampleResponse"},"DeleteServiceParams":{"description":"Delete an existing service from the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_service","const":"delete_service","title":"Smb Tool Type"}},"title":"DeleteServiceParams"},"DeleteStaffParams":{"description":"Delete an existing staff member from the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_staff","const":"delete_staff","title":"Smb Tool Type"}},"title":"DeleteStaffParams"},"DeleteVoiceResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteVoiceResponseModel"},"DeleteVoiceSampleResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice sample deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteVoiceSampleResponseModel"},"DeleteWorkspaceGroupMemberResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace group member deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteWorkspaceGroupMemberResponseModel"},"DeleteWorkspaceInviteResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace invite deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteWorkspaceInviteResponseModel"},"DeleteWorkspaceWebhookResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace webhook deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteWorkspaceWebhookResponseModel"},"DeliverableInfo":{"type":"object","properties":{"signed_url":{"description":"A time-limited URL to download the delivered file.","type":"string","title":"Signed Url"},"content_type":{"description":"The MIME type of the delivered file (e.g. 'video/mp4').","type":"string","title":"Content Type"},"name":{"description":"The name of the delivered file.","type":"string","title":"Name"},"version":{"description":"The version number of the deliverable.","type":"integer","default":1,"title":"Version"}},"example":{"content_type":"video/mp4","name":"[fr][mp4] Item #cbaba1fe","signed_url":"https://storage.googleapis.com/example-bucket/deliverables/output_fr.mp4?X-Goog-Signature=...","version":1},"required":["signed_url","content_type","name"],"title":"DeliverableInfo"},"DependentAvailableAgentIdentifier":{"type":"object","properties":{"referenced_resource_ids":{"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly.","type":"array","items":{"type":"string"},"title":"Referenced Resource Ids"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"available","const":"available","title":"Type"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"access_level":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"}},"required":["id","name","created_at_unix_secs","access_level"],"title":"DependentAvailableAgentIdentifier"},"DependentAvailableMCPServerIdentifier":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"available","const":"available","title":"Type"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"access_level":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"}},"required":["id","name","created_at_unix_secs","access_level"],"title":"DependentAvailableMCPServerIdentifier"},"DependentAvailableToolIdentifier":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"available","const":"available","title":"Type"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"access_level":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"}},"required":["id","name","created_at_unix_secs","access_level"],"title":"DependentAvailableToolIdentifier"},"DependentBranchInfo":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"type":"string","title":"Agent Name"},"branch_id":{"type":"string","title":"Branch Id"},"branch_name":{"type":"string","title":"Branch Name"},"is_main":{"type":"boolean","title":"Is Main"}},"required":["agent_id","agent_name","branch_id","branch_name","is_main"],"title":"DependentBranchInfo"},"DependentIntegrationConnectionIdentifier":{"description":"Identifier for an integration connection that depends on an auth connection","type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"DependentIntegrationConnectionIdentifier"},"DependentPhoneNumberIdentifier":{"type":"object","properties":{"phone_number_id":{"type":"string","title":"Phone Number Id"},"phone_number":{"type":"string","title":"Phone Number"},"label":{"type":"string","title":"Label"},"provider":{"$ref":"#/components/schemas/TelephonyProvider"}},"required":["phone_number_id","phone_number","label","provider"],"title":"DependentPhoneNumberIdentifier"},"DependentUnknownAgentIdentifier":{"description":"A model that represents an agent dependent on a knowledge base/tools\nto which the user has no direct access.","type":"object","properties":{"referenced_resource_ids":{"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly.","type":"array","items":{"type":"string"},"title":"Referenced Resource Ids"},"id":{"type":"string","title":"Id"},"type":{"type":"string","default":"unknown","const":"unknown","title":"Type"}},"required":["id"],"title":"DependentUnknownAgentIdentifier"},"DependentUnknownMCPServerIdentifier":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","default":"unknown","const":"unknown","title":"Type"}},"required":["id"],"title":"DependentUnknownMCPServerIdentifier"},"DependentUnknownToolIdentifier":{"description":"A model that represents an tool dependent on a knowledge base/tools\nto which the user has no direct access.","type":"object","properties":{"type":{"type":"string","default":"unknown","const":"unknown","title":"Type"},"id":{"type":"string","title":"Id"}},"required":["id"],"title":"DependentUnknownToolIdentifier"},"DetailedMusicResponse":{"description":"Response model for structured music generation endpoint","type":"object","properties":{"composition_plan":{"description":"The composition plan used to generate the song","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}],"title":"Composition Plan"},"song_metadata":{"description":"The metadata of the generated song","$ref":"#/components/schemas/SongMetadata"},"words_timestamps":{"description":"The timestamps of the words in the generated song","anyOf":[{"items":{"$ref":"#/components/schemas/WordTimestamp"},"type":"array"},{"type":"null"}],"title":"Words Timestamps"}},"example":{"composition_plan":{"negative_global_styles":["metal","hip-hop","country"],"positive_global_styles":["pop","rock","jazz"],"sections":[{"duration_ms":10000,"lines":["Verse 1 lyrics"],"negative_local_styles":["metal","hip-hop","country"],"positive_local_styles":["pop","rock","jazz"],"section_name":"Verse 1"}]},"song_metadata":{"description":"My Song Description","genres":["pop","rock","jazz"],"is_explicit":false,"languages":["en","fr"],"title":"My Song"},"words_timestamps":[{"end_ms":1000,"start_ms":0,"word":"Verse"},{"end_ms":2000,"start_ms":1000,"word":"1"},{"end_ms":3000,"start_ms":2000,"word":"lyrics"}]},"required":["composition_plan","song_metadata","words_timestamps"],"title":"DetailedMusicResponse"},"DetectedEntity":{"type":"object","properties":{"text":{"description":"The text that was identified as an entity.","type":"string","title":"Text"},"entity_type":{"description":"The type of entity detected (e.g., 'credit_card', 'email_address', 'person_name').","type":"string","title":"Entity Type"},"start_char":{"description":"Start character position in the transcript text.","type":"integer","title":"Start Char"},"end_char":{"description":"End character position in the transcript text.","type":"integer","title":"End Char"}},"required":["text","entity_type","start_char","end_char"],"title":"DetectedEntity"},"DeviceModel":{"description":"Device information.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/device","type":"object","properties":{"ip":{"description":"IP address","anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"hostname":{"description":"Device hostname","anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"type_id":{"description":"Device type ID (99 = Unknown)","type":"integer","default":99,"title":"Type Id"}},"additionalProperties":false,"title":"DeviceModel"},"DialogueInput":{"type":"object","properties":{"text":{"description":"The text to be converted into speech.","type":"string","title":"Text"},"voice_id":{"description":"The ID of the voice to be used for the generation.","type":"string","title":"Voice Id"}},"required":["text","voice_id"],"title":"DialogueInput"},"DialogueInputResponseModel":{"type":"object","properties":{"text":{"description":"The text of the dialogue input line.","type":"string","title":"Text"},"voice_id":{"description":"The ID of the voice used for this dialogue input line.","type":"string","title":"Voice Id"},"voice_name":{"description":"The name of the voice used for this dialogue input line.","type":"string","title":"Voice Name"}},"required":["text","voice_id","voice_name"],"title":"DialogueInputResponseModel"},"DirectPublishingReadResponseModel":{"type":"object","properties":{"read_id":{"type":"string","title":"Read Id"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"updated_at_unix":{"type":"integer","title":"Updated At Unix"},"word_count":{"type":"integer","title":"Word Count"},"char_count":{"type":"integer","title":"Char Count"},"chapters":{"type":"array","items":{"$ref":"#/components/schemas/ReadMetadataChapterDBModel"},"title":"Chapters"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"article_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Article Image Url"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"display_mode":{"anyOf":[{"type":"string","enum":["text","audio-only","text-with-audio"]},{"type":"null"}],"title":"Display Mode"},"genre":{"anyOf":[{"items":{"type":"string","enum":["Fantasy","Romance","Science Fiction","Mystery and Thriller","Action and Adventure","Dystopia","Business and Economics","Technology","Christian & Inspirational","Horror","Biography and Memoir","Education and Learning","History","Children's Literature","Young Adult","Fairy Tales and Folklore","Fan Fiction","General Fiction","Health and Wellness","Historical Fiction","Humor","Literary Classics","Philosophy","Poetry","Politics and Government","Psychology","Science and Nature","Self-Help","Spirituality and Religion","Travel","True Crime","Other"]},"type":"array"},{"type":"null"}],"title":"Genre"},"fiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fiction"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"original_file_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original File Type"},"target_audience":{"anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"title":"Target Audience"},"mature_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mature Content"},"safesearch_adult":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Safesearch Adult"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin"},"publication_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publication Date"},"isbn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isbn"},"ean":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ean"},"legal_terms":{"anyOf":[{"$ref":"#/components/schemas/ReadLegalTerms"},{"type":"null"}]},"content_guidelines_terms":{"anyOf":[{"$ref":"#/components/schemas/ReadLegalTerms"},{"type":"null"}]},"last_updated_from_project_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Updated From Project Unix"},"publishing_project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publishing Project Id"},"publishing_state":{"type":"string","default":"published","title":"Publishing State"},"publisher_profile_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publisher Profile Id"},"quality_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quality Score"},"publisher":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publisher"},"copyright":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Copyright"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"distribution_territories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Distribution Territories"},"edition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edition"},"contributors":{"anyOf":[{"items":{"$ref":"#/components/schemas/Contributor"},"type":"array"},{"type":"null"}],"title":"Contributors"},"payout_type":{"anyOf":[{"type":"string","enum":["none","engagement_based","fixed_payout"]},{"type":"null"}],"title":"Payout Type"},"list_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"List Price"},"currency":{"anyOf":[{"type":"string","const":"usd"},{"type":"null"}],"title":"Currency"},"original_audio_project_export_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Audio Project Export Id"},"original_audio_document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Audio Document Id"},"series_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Series Id"},"volume":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volume"},"published_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Published At Unix"},"read_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Read Slug"},"preview_audio_object":{"anyOf":[{"$ref":"#/components/schemas/PreviewAudioDBModel"},{"type":"null"}]},"sample_config":{"anyOf":[{"$ref":"#/components/schemas/SampleConfigDBModel"},{"type":"null"}]},"review":{"anyOf":[{"$ref":"#/components/schemas/ReviewResponseModel"},{"type":"null"}]},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"can_use_assistant":{"type":"boolean","default":true,"title":"Can Use Assistant"},"is_voice_changer_on":{"type":"boolean","default":false,"title":"Is Voice Changer On"}},"required":["read_id","created_at_unix","updated_at_unix","word_count","char_count","chapters"],"title":"DirectPublishingReadResponseModel"},"DiscountResponseModel":{"type":"object","properties":{"discount_percent_off":{"description":"The discount applied to the invoice. E.g. [20.0f] for 20% off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Percent Off"},"discount_amount_off":{"description":"The discount applied to the invoice. E.g. [20.0f] for 20 cents off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Amount Off"}},"title":"DiscountResponseModel"},"DoDubbingResponseModel":{"type":"object","properties":{"dubbing_id":{"description":"The ID of the dubbing project.","type":"string","title":"Dubbing Id"},"expected_duration_sec":{"description":"The expected duration of the dubbing project in seconds.","type":"number","title":"Expected Duration Sec"}},"example":{"dubbing_id":"21m00Tcm4TlvDq8ikWAM","expected_duration_sec":127.5},"required":["dubbing_id","expected_duration_sec"],"title":"DoDubbingResponseModel","x-fern-type-name":"DoDubbingResponse"},"DocumentUsageModeEnum":{"type":"string","default":"auto","enum":["prompt","auto"],"title":"DocumentUsageModeEnum"},"DocxExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"docx","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"DocxExportOptions"},"DubOrderItemRequest":{"type":"object","properties":{"kind":{"description":"The type of order item.","type":"string","default":"dub","const":"dub","title":"Kind"},"media_id":{"description":"The ID of the uploaded media file to dub.","$ref":"#/components/schemas/MediaId"},"source_language":{"description":"The language code of the source media (e.g. 'en', 'es').","type":"string","title":"Source Language"},"destination_languages":{"description":"List of target language codes to dub the media into.","type":"array","items":{"type":"string"},"title":"Destination Languages"},"include_captions":{"description":"Whether to generate captions for the dubbed outputs.","type":"boolean","title":"Include Captions"},"include_source_captions":{"description":"Whether to generate captions for the source language.","type":"boolean","title":"Include Source Captions"},"instructions":{"description":"Optional free-text instructions for the dubbing team.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"captions_sdh":{"description":"Whether captions should use SDH format, which includes descriptions for deaf and hard-of-hearing viewers.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Captions Sdh"}},"example":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgatk6h0fwxrtbjade61yqhx","source_language":"en"},"required":["media_id","source_language","destination_languages","include_captions","include_source_captions"],"title":"DubOrderItemRequest"},"DubbedSegment":{"type":"object","properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"subtitles":{"type":"array","items":{"$ref":"#/components/schemas/SegmentSubtitleFrame"},"title":"Subtitles"},"audio_stale":{"type":"boolean","title":"Audio Stale"},"media_ref":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]}},"required":["start_time","end_time","text","subtitles","audio_stale","media_ref"],"title":"DubbedSegment"},"DubbingLanguageListResponse":{"type":"object","properties":{"languages":{"description":"The page of language targets for the project.","type":"array","items":{"$ref":"#/components/schemas/DubbingLanguageResponse"},"title":"Languages"},"next_cursor":{"description":"Cursor for the next page, or null when there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["languages"],"title":"DubbingLanguageListResponse"},"DubbingLanguageOutputs":{"description":"Signed, time-limited download URLs for a language target's outputs.","type":"object","properties":{"lossless_audio":{"description":"Signed URL of the dubbed lossless audio track.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Lossless Audio"}},"title":"DubbingLanguageOutputs"},"DubbingLanguageResponse":{"type":"object","properties":{"language_id":{"description":"Unique identifier of the language target.","type":"string","title":"Language Id"},"project_id":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"},"target_language":{"description":"BCP-47 language tag this target is dubbed into.","type":"string","title":"Target Language"},"status":{"description":"Lifecycle status: 'queued' (waiting on the project), 'processing', 'completed', 'stale' (source/transcript changed), or 'failed'.","type":"string","enum":["queued","processing","completed","stale","failed"],"title":"Status"},"model_id":{"description":"Effective dubbing model id (target override or project default).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"voice_settings":{"description":"Voice settings applied to the whole language, or null if unset.","anyOf":[{"$ref":"#/components/schemas/VoiceSettings"},{"type":"null"}]},"outputs":{"description":"Signed output URLs; null until the target has produced an output (present once 'completed', and kept while 'stale' -- compare `output_revision` against `revision` to tell whether the output is up to date).","anyOf":[{"$ref":"#/components/schemas/DubbingLanguageOutputs"},{"type":"null"}]},"revision":{"description":"Monotonic counter incremented whenever this target's transcript changes (a source edit affecting it, or an edit to its translation).","type":"integer","title":"Revision"},"output_revision":{"description":"The `revision` the current dubbed output was generated from; equal to `revision` when up to date, less than it when 'stale'. Null until a generation has completed.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Revision"},"created_at":{"description":"When the language target was created.","type":"string","format":"date-time","title":"Created At"},"updated_at":{"description":"When the language target was last updated.","type":"string","format":"date-time","title":"Updated At"}},"required":["language_id","project_id","target_language","status","revision","created_at","updated_at"],"title":"DubbingLanguageResponse"},"DubbingMediaMetadata":{"type":"object","properties":{"content_type":{"description":"The content type of the media.","type":"string","title":"Content Type"},"duration":{"description":"The duration of the media in seconds.","type":"number","title":"Duration"}},"required":["content_type","duration"],"title":"DubbingMediaMetadata"},"DubbingMediaReference":{"type":"object","properties":{"src":{"type":"string","title":"Src"},"content_type":{"type":"string","title":"Content Type"},"bucket_name":{"type":"string","title":"Bucket Name"},"random_path_slug":{"type":"string","title":"Random Path Slug"},"duration_secs":{"type":"number","title":"Duration Secs"},"is_audio":{"type":"boolean","title":"Is Audio"},"url":{"type":"string","title":"Url"}},"required":["src","content_type","bucket_name","random_path_slug","duration_secs","is_audio","url"],"title":"DubbingMediaReference"},"DubbingMetadataPageResponseModel":{"type":"object","properties":{"dubs":{"type":"array","items":{"$ref":"#/components/schemas/DubbingMetadataResponse"},"title":"Dubs"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["dubs","next_cursor","has_more"],"title":"DubbingMetadataPageResponseModel"},"DubbingMetadataResponse":{"type":"object","properties":{"dubbing_id":{"description":"The ID of the dubbing project.","type":"string","title":"Dubbing Id"},"name":{"description":"The name of the dubbing project.","type":"string","title":"Name"},"status":{"description":"The state this dub is in.","type":"string","examples":["preparing","queued","dubbing","dubbed","failed","cloning"],"title":"Status"},"source_language":{"description":"Once dubbing has completed, the ISO-639-1 code of the original media's source language.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"target_languages":{"description":"The ISO-639-1 code of the languages this media has been dubbed into.","type":"array","items":{"type":"string"},"title":"Target Languages"},"editable":{"description":"Whether this dubbing project is editable in Dubbing Studio.","type":"boolean","default":false,"title":"Editable"},"created_at":{"description":"Timestamp this dub was created.","type":"string","format":"date-time","title":"Created At"},"media_metadata":{"description":"Metadata, such as the length in seconds and content type, of the dubbed content.","anyOf":[{"$ref":"#/components/schemas/DubbingMediaMetadata"},{"type":"null"}]},"error":{"description":"Error message indicate, if this dub has failed, what happened.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"example":{"created_at":"2025-07-15T14:49:41.149000","dubbing_id":"21m00Tcm4TlvDq8ikWAM","editable":true,"media_metadata":{"content_type":"video/mp4","duration":127.5},"name":"My Dubbing Project","source_language":"en","status":"dubbed","target_languages":["es","fr","de"]},"required":["dubbing_id","name","status","source_language","target_languages","created_at"],"title":"DubbingMetadataResponse"},"DubbingProjectListResponse":{"type":"object","properties":{"projects":{"description":"The page of dubbing projects the caller can access.","type":"array","items":{"$ref":"#/components/schemas/DubbingProjectResponse"},"title":"Projects"},"next_cursor":{"description":"Cursor for the next page, or null when there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["projects"],"title":"DubbingProjectListResponse"},"DubbingProjectResponse":{"type":"object","properties":{"project_id":{"description":"Unique identifier of the dubbing project.","type":"string","title":"Project Id"},"status":{"description":"Lifecycle status of the project: 'preparing'/'processing' while it transcribes, 'ready' once transcription is done, or 'failed'.","type":"string","enum":["queued","preparing","processing","ready","failed"],"title":"Status"},"reference":{"description":"Optional free-form string the customer can provide to identify the project on their end.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"},"source_language":{"description":"BCP-47 language tag of the source media (null if auto-detected).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"model_id":{"description":"Default dubbing model id applied to this project's language targets.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"media":{"description":"Source media metadata; null until the project is ready.","anyOf":[{"$ref":"#/components/schemas/DubbingSourceMediaInfo"},{"type":"null"}]},"language_ids":{"description":"Identifiers of the language targets created under this project.","type":"array","items":{"type":"string"},"default":[],"title":"Language Ids"},"revision":{"description":"Monotonic counter incremented whenever the source transcript is edited (segment add/edit/delete).","type":"integer","title":"Revision"},"created_at":{"description":"When the project was created.","type":"string","format":"date-time","title":"Created At"},"updated_at":{"description":"When the project was last updated.","type":"string","format":"date-time","title":"Updated At"}},"required":["project_id","status","revision","created_at","updated_at"],"title":"DubbingProjectResponse"},"DubbingRenderResponseModel":{"type":"object","properties":{"version":{"type":"integer","title":"Version"},"render_id":{"type":"string","title":"Render Id"}},"required":["version","render_id"],"title":"DubbingRenderResponseModel"},"DubbingResource":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"version":{"type":"integer","title":"Version"},"source_language":{"type":"string","title":"Source Language"},"target_languages":{"type":"array","items":{"type":"string"},"title":"Target Languages"},"input":{"$ref":"#/components/schemas/DubbingMediaReference"},"background":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]},"foreground":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]},"speaker_tracks":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SpeakerTrack"},"title":"Speaker Tracks"},"speaker_segments":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SpeakerSegment"},"title":"Speaker Segments"},"renders":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Render"},"title":"Renders"}},"required":["id","version","source_language","target_languages","input","background","foreground","speaker_tracks","speaker_segments","renders"],"title":"DubbingResource"},"DubbingSegmentCreateRequest":{"description":"A new source segment; its id and word-level alignment are assigned by the server.","type":"object","properties":{"text":{"description":"The text of the new segment.","type":"string","title":"Text"},"speaker_id":{"description":"Identifier of the segment's speaker.","type":"string","title":"Speaker Id"},"start_s":{"description":"Start time of the segment, in seconds.","type":"number","title":"Start S"},"end_s":{"description":"End time of the segment, in seconds.","type":"number","title":"End S"}},"required":["text","speaker_id","start_s","end_s"],"title":"DubbingSegmentCreateRequest"},"DubbingSegmentUpdateRequest":{"description":"A partial update to a source segment; omitted fields are left unchanged.","type":"object","properties":{"text":{"description":"New text for the segment.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"speaker_id":{"description":"New speaker id for the segment.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Id"},"start_s":{"description":"New start time, in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start S"},"end_s":{"description":"New end time, in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"End S"}},"title":"DubbingSegmentUpdateRequest"},"DubbingSourceMediaInfo":{"description":"Metadata about the project's source media.","type":"object","properties":{"filename":{"description":"Original filename of the uploaded source media (null for URL sources).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"},"duration_s":{"description":"Duration of the source media in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration S"},"has_video":{"description":"Whether the source media contains a video stream.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Video"},"mime_type":{"description":"MIME type of the uploaded source media.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"}},"title":"DubbingSourceMediaInfo"},"DubbingSourceSegmentUpdateResponse":{"description":"The result of a source-segment add or edit: the segment and the new revision.","type":"object","properties":{"segment":{"description":"The segment in its updated state.","$ref":"#/components/schemas/DubbingTranscriptSegment"},"revision":{"description":"The project's source-transcript revision after this edit.","type":"integer","title":"Revision"}},"required":["segment","revision"],"title":"DubbingSourceSegmentUpdateResponse"},"DubbingSourceTranscriptResponse":{"type":"object","properties":{"language":{"description":"BCP-47 language tag of the source transcript (null if unknown).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"segments":{"description":"The source segments, in playback order.","type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptSegment"},"title":"Segments"},"revision":{"description":"The project's source-transcript revision at read time.","type":"integer","title":"Revision"}},"required":["segments","revision"],"title":"DubbingSourceTranscriptResponse"},"DubbingTargetSegmentUpdateRequest":{"description":"An edit to a target segment's translation.","type":"object","properties":{"translation":{"description":"New translated text, or null to mark the segment for re-translation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Translation"}},"required":["translation"],"title":"DubbingTargetSegmentUpdateRequest"},"DubbingTargetSegmentUpdateResponse":{"description":"The result of a target-translation edit: the updated segment and the new revision.","type":"object","properties":{"segment":{"description":"The target segment in its updated state.","$ref":"#/components/schemas/DubbingTargetTranscriptSegment"},"revision":{"description":"The target's revision after this edit.","type":"integer","title":"Revision"}},"required":["segment","revision"],"title":"DubbingTargetSegmentUpdateResponse"},"DubbingTargetTranscriptResponse":{"type":"object","properties":{"source_language":{"description":"BCP-47 language tag of the source transcript.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"target_language":{"description":"BCP-47 language tag this target is translated into.","type":"string","title":"Target Language"},"segments":{"description":"The target segments, in playback order.","type":"array","items":{"$ref":"#/components/schemas/DubbingTargetTranscriptSegment"},"title":"Segments"},"revision":{"description":"The target's revision at read time.","type":"integer","title":"Revision"}},"required":["target_language","segments","revision"],"title":"DubbingTargetTranscriptResponse"},"DubbingTargetTranscriptSegment":{"description":"One segment of a target transcript: a source segment plus its translation.","type":"object","properties":{"id":{"description":"Stable identifier of the segment (from the source).","type":"string","title":"Id"},"speaker_id":{"description":"Identifier of the segment's speaker.","type":"string","title":"Speaker Id"},"start_s":{"description":"Start time of the segment, in seconds.","type":"number","title":"Start S"},"end_s":{"description":"End time of the segment, in seconds.","type":"number","title":"End S"},"source_text":{"description":"The source-language text of the segment.","type":"string","title":"Source Text"},"translation":{"description":"The translated text, or null if not translated yet (needs translation).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Translation"}},"required":["id","speaker_id","start_s","end_s","source_text"],"title":"DubbingTargetTranscriptSegment"},"DubbingTranscript":{"type":"object","properties":{"language":{"type":"string","title":"Language"},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptUtterance"},"title":"Utterances"}},"required":["language","utterances"],"title":"DubbingTranscript"},"DubbingTranscriptCharacter":{"type":"object","properties":{"text":{"type":"string","default":"","title":"Text"},"start_s":{"type":"number","default":0,"title":"Start S"},"end_s":{"type":"number","default":0,"title":"End S"}},"title":"DubbingTranscriptCharacter"},"DubbingTranscriptResponseModel":{"type":"object","properties":{"language":{"type":"string","title":"Language"},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptUtterance"},"title":"Utterances"}},"required":["language","utterances"],"title":"DubbingTranscriptResponseModel"},"DubbingTranscriptRevisionResponse":{"description":"The new revision after a source edit that returns no segment (e.g. a delete).","type":"object","properties":{"revision":{"description":"The project's source-transcript revision after this edit.","type":"integer","title":"Revision"}},"required":["revision"],"title":"DubbingTranscriptRevisionResponse"},"DubbingTranscriptSegment":{"description":"One segment of a source transcript.","type":"object","properties":{"id":{"description":"Stable identifier of the segment.","type":"string","title":"Id"},"text":{"description":"The transcribed text of the segment.","type":"string","title":"Text"},"speaker_id":{"description":"Identifier of the segment's speaker.","type":"string","title":"Speaker Id"},"start_s":{"description":"Start time of the segment, in seconds.","type":"number","title":"Start S"},"end_s":{"description":"End time of the segment, in seconds.","type":"number","title":"End S"}},"required":["id","text","speaker_id","start_s","end_s"],"title":"DubbingTranscriptSegment"},"DubbingTranscriptUtterance":{"type":"object","properties":{"text":{"type":"string","default":"","title":"Text"},"speaker_id":{"type":"string","default":"unknown","title":"Speaker Id"},"start_s":{"type":"number","default":0,"title":"Start S"},"end_s":{"type":"number","default":0,"title":"End S"},"words":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptWord"},"title":"Words"}},"title":"DubbingTranscriptUtterance"},"DubbingTranscriptWord":{"type":"object","properties":{"text":{"type":"string","default":"","title":"Text"},"word_type":{"type":"string","default":"unknown","title":"Word Type"},"start_s":{"type":"number","default":0,"title":"Start S"},"end_s":{"type":"number","default":0,"title":"End S"},"characters":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptCharacter"},"title":"Characters"}},"title":"DubbingTranscriptWord"},"DubbingTranscriptsResponseModel":{"type":"object","properties":{"transcript_format":{"type":"string","enum":["srt","webvtt","json"],"title":"Transcript Format"},"srt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Srt"},"webvtt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webvtt"},"json":{"anyOf":[{"$ref":"#/components/schemas/DubbingTranscript"},{"type":"null"}]}},"required":["transcript_format"],"title":"DubbingTranscriptsResponseModel"},"DynamicVariableAssignment":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables.","type":"object","properties":{"source":{"description":"The source to extract the value from. Currently only 'response' is supported.","type":"string","default":"response","const":"response","title":"Source"},"dynamic_variable":{"description":"The name of the dynamic variable to assign the extracted value to","type":"string","title":"Dynamic Variable"},"value_path":{"description":"Dot notation path to extract the value from the source (e.g., 'user.name' or 'data.0.id')","type":"string","title":"Value Path"},"sanitize":{"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.","type":"boolean","default":false,"title":"Sanitize"},"preserve_native_type":{"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.","type":"boolean","default":false,"title":"Preserve Native Type"}},"example":{"dynamic_variable":"user_name","preserve_native_type":false,"sanitize":false,"source":"response","value_path":"user.name"},"required":["dynamic_variable","value_path"],"title":"DynamicVariableAssignment"},"DynamicVariableSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"dynamic_variable","const":"dynamic_variable","title":"Source"},"dynamic_variable":{"description":"The name of the dynamic variable to use","type":"string","minLength":1,"title":"Dynamic Variable"}},"required":["dynamic_variable"],"title":"DynamicVariableSchemaOverride"},"DynamicVariableUpdateCommonModel":{"description":"Tracks a dynamic variable update that occurred during tool execution.","type":"object","properties":{"variable_name":{"type":"string","title":"Variable Name"},"old_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Value"},"new_value":{"type":"string","title":"New Value"},"updated_at":{"type":"number","title":"Updated At"},"tool_name":{"type":"string","title":"Tool Name"},"tool_request_id":{"type":"string","title":"Tool Request Id"}},"required":["variable_name","old_value","new_value","updated_at","tool_name","tool_request_id"],"title":"DynamicVariableUpdateCommonModel"},"DynamicVariablesConfig":{"type":"object","properties":{"dynamic_variable_placeholders":{"description":"A dictionary of dynamic variable placeholders and their values","type":"object","additionalProperties":true,"title":"Dynamic Variable Placeholders"}},"example":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"title":"DynamicVariablesConfig"},"DynamicVariablesConfigWorkflowOverride":{"type":"object","properties":{"dynamic_variable_placeholders":{"description":"A dictionary of dynamic variable placeholders and their values","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dynamic Variable Placeholders"}},"example":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"title":"DynamicVariablesConfigWorkflowOverride"},"Eagerness":{"type":"string","enum":["low","medium","high"],"title":"Eagerness"},"EditChapterResponseModel":{"type":"object","properties":{"chapter":{"$ref":"#/components/schemas/ChapterWithContentResponseModel"}},"required":["chapter"],"title":"EditChapterResponseModel"},"EditProjectResponseModel":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectResponseModel"}},"required":["project"],"title":"EditProjectResponseModel"},"EditVoiceResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice edit request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"EditVoiceResponseModel"},"EditVoiceSettingsResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice settings edit request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"EditVoiceSettingsResponseModel"},"EmbedVariant":{"type":"string","default":"full","enum":["tiny","compact","full","expandable"],"title":"EmbedVariant"},"EmbeddingModelEnum":{"type":"string","default":"e5_mistral_7b_instruct","enum":["e5_mistral_7b_instruct","multilingual_e5_large_instruct"],"title":"EmbeddingModelEnum"},"EndCallToolConfig":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"end_call","const":"end_call","title":"System Tool Type"}},"title":"EndCallToolConfig"},"EndCallToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"end_call_success","const":"end_call_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"title":"EndCallToolResultModel"},"EndCallTriggerAction":{"type":"object","properties":{"type":{"type":"string","default":"end_call","const":"end_call","title":"Type"}},"title":"EndCallTriggerAction"},"EndProcedureToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"end_procedure","const":"end_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Input"},"title":"Procedures"}},"title":"EndProcedureToolConfig"},"EndProcedureToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"end_procedure","const":"end_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Output"},"title":"Procedures"}},"title":"EndProcedureToolConfig"},"EndProcedureToolErrorStatus":{"type":"string","enum":["not_found","invalid_id"]},"EntityManagementActivityId":{"description":"OCSF Activity IDs for Entity Management [3004] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/entity_management","type":"integer","enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,99],"title":"EntityManagementActivityId"},"EntryBehavior":{"type":"string","default":"auto","enum":["generate_immediately","wait_for_user","auto"],"title":"EntryBehavior"},"EnvironmentAuthConnectionLocator":{"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.","type":"object","properties":{"env_var_label":{"type":"string","title":"Env Var Label"}},"required":["env_var_label"],"title":"EnvironmentAuthConnectionLocator"},"EnvironmentVariableAuthConnectionValue":{"type":"object","properties":{"auth_connection_id":{"type":"string","title":"Auth Connection Id"}},"required":["auth_connection_id"],"title":"EnvironmentVariableAuthConnectionValue"},"EnvironmentVariableAuthConnectionValueRequest":{"type":"object","properties":{"auth_connection_id":{"type":"string","title":"Auth Connection Id"}},"required":["auth_connection_id"],"title":"EnvironmentVariableAuthConnectionValueRequest"},"EnvironmentVariableResponse":{"type":"object","properties":{"label":{"type":"string","title":"Label"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"updated_at_unix_secs":{"type":"integer","title":"Updated At Unix Secs"},"created_by_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"},"type":{"type":"string","enum":["string","secret","auth_connection"],"title":"Type"},"id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"values":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableSecretValue"},"type":"object"},{"additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValue"},"type":"object"}],"title":"Values"}},"required":["label","created_at_unix_secs","updated_at_unix_secs","type","id","workspace_id","values"],"title":"EnvironmentVariableResponse"},"EnvironmentVariableSecretValue":{"type":"object","properties":{"secret_id":{"type":"string","title":"Secret Id"}},"required":["secret_id"],"title":"EnvironmentVariableSecretValue"},"EnvironmentVariableSecretValueRequest":{"type":"object","properties":{"secret_id":{"type":"string","title":"Secret Id"}},"required":["secret_id"],"title":"EnvironmentVariableSecretValueRequest"},"EnvironmentVariablesListResponse":{"type":"object","properties":{"environment_variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableResponse"},"title":"Environment Variables"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["environment_variables","has_more"],"title":"EnvironmentVariablesListResponse"},"EvaluationSettings-Input":{"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.","type":"object","properties":{"criteria":{"description":"Individual criteria that the agent should be evaluated against","type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"title":"Criteria"}},"title":"EvaluationSettings"},"EvaluationSettings-Output":{"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.","type":"object","properties":{"criteria":{"description":"Individual criteria that the agent should be evaluated against","type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"title":"Criteria"}},"title":"EvaluationSettings"},"EvaluationSuccessResult":{"type":"string","enum":["success","failure","unknown"],"title":"EvaluationSuccessResult"},"ExactParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"exact","title":"Type"},"expected_value":{"description":"The exact string value that the parameter must match.","type":"string","title":"Expected Value"}},"required":["type","expected_value"],"title":"ExactParameterEvaluationStrategy"},"ExotelApiSubdomain":{"type":"string","enum":["api.in.exotel.com","api.exotel.com"],"title":"ExotelApiSubdomain"},"ExotelOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"callSid":{"description":"Exotel CallSid for the originated call","anyOf":[{"type":"string"},{"type":"null"}],"title":"Callsid"}},"required":["success","message","conversation_id","callSid"],"title":"ExotelOutboundCallResponse"},"ExportOptions":{"discriminator":{"propertyName":"format","mapping":{"docx":"#/components/schemas/DocxExportOptions","html":"#/components/schemas/HtmlExportOptions","pdf":"#/components/schemas/PdfExportOptions","segmented_json":"#/components/schemas/SegmentedJsonExportOptions","srt":"#/components/schemas/SrtExportOptions","txt":"#/components/schemas/TxtExportOptions"}},"oneOf":[{"$ref":"#/components/schemas/SegmentedJsonExportOptions"},{"$ref":"#/components/schemas/DocxExportOptions"},{"$ref":"#/components/schemas/PdfExportOptions"},{"$ref":"#/components/schemas/TxtExportOptions"},{"$ref":"#/components/schemas/HtmlExportOptions"},{"$ref":"#/components/schemas/SrtExportOptions"}],"title":"ExportOptions"},"ExtendedSubscriptionResponseModel":{"type":"object","properties":{"tier":{"description":"The tier of the user's subscription.","type":"string","title":"Tier"},"character_count":{"description":"The number of characters used by the user.","type":"integer","title":"Character Count"},"character_limit":{"description":"The maximum number of characters allowed in the current billing period.","type":"integer","title":"Character Limit"},"max_character_limit_extension":{"description":"Deprecated: use `max_credit_limit_extension`. Maximum number of characters that the character limit can be exceeded by. Managed by the workspace admin.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Character Limit Extension"},"max_credit_limit_extension":{"description":"Maximum number of credits that the credit limit can be exceeded by. Managed by the workspace admin. `\"unlimited\"` means no cap, `0` means usage-based billing is disabled.","anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"}],"title":"Max Credit Limit Extension"},"can_extend_character_limit":{"description":"Whether the workspace is entitled to enter overages (usage-based billing).","type":"boolean","title":"Can Extend Character Limit"},"allowed_to_extend_character_limit":{"description":"Deprecated: use `max_credit_limit_extension != 0`. Whether the user is allowed to extend their character limit.","type":"boolean","title":"Allowed To Extend Character Limit"},"next_character_count_reset_unix":{"description":"The Unix timestamp of the next character count reset.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Character Count Reset Unix"},"voice_slots_used":{"description":"The number of voice slots used by the user.","type":"integer","title":"Voice Slots Used"},"professional_voice_slots_used":{"description":"The number of professional voice slots used. For consolidated billing this is the group-wide count across all workspaces in the group; see professional_voice_slots_used_in_workspace for the current workspace only.","type":"integer","title":"Professional Voice Slots Used"},"professional_voice_slots_used_in_workspace":{"description":"The number of professional voice slots used in the current workspace. For consolidated billing, professional_voice_slots_used counts across all workspaces in the group, while this counts only the current workspace.","type":"integer","title":"Professional Voice Slots Used In Workspace"},"voice_limit":{"description":"The maximum number of voice slots allowed for the user.","type":"integer","title":"Voice Limit"},"max_voice_add_edits":{"description":"The maximum number of voice add/edits allowed for the user.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Voice Add Edits"},"voice_add_edit_counter":{"description":"The number of voice add/edits used by the user.","type":"integer","title":"Voice Add Edit Counter"},"professional_voice_limit":{"description":"The maximum number of professional voices allowed for the user.","type":"integer","title":"Professional Voice Limit"},"can_extend_voice_limit":{"description":"Whether the user can extend their voice limit.","type":"boolean","title":"Can Extend Voice Limit"},"can_use_instant_voice_cloning":{"description":"Whether the user can use instant voice cloning.","type":"boolean","title":"Can Use Instant Voice Cloning"},"can_use_professional_voice_cloning":{"description":"Whether the user can use professional voice cloning.","type":"boolean","title":"Can Use Professional Voice Cloning"},"currency":{"description":"The currency of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}]},"current_overage":{"description":"The current usage-based overage cost.","$ref":"#/components/schemas/Price"},"status":{"description":"The status of the user's subscription.","$ref":"#/components/schemas/SubscriptionStatusType"},"billing_period":{"description":"The billing period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/BillingPeriod"},{"type":"null"}]},"character_refresh_period":{"description":"The character refresh period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/CharacterRefreshPeriod"},{"type":"null"}]},"next_invoice":{"description":"The next invoice for the user.","anyOf":[{"$ref":"#/components/schemas/InvoiceResponseModel"},{"type":"null"}]},"open_invoices":{"description":"The open invoices for the user.","type":"array","items":{"$ref":"#/components/schemas/InvoiceResponseModel"},"title":"Open Invoices"},"has_open_invoices":{"description":"Whether the user has open invoices.","type":"boolean","title":"Has Open Invoices"},"pending_change":{"description":"The pending change for the user.","anyOf":[{"$ref":"#/components/schemas/PendingSubscriptionSwitchResponseModel"},{"$ref":"#/components/schemas/PendingCancellationResponseModel"},{"type":"null"}],"title":"Pending Change"},"has_used_starter_coupon_on_account":{"description":"True if any workspace owned by this user's auth account has redeemed the starter first-month discount coupon.","type":"boolean","default":false,"title":"Has Used Starter Coupon On Account"},"has_used_creator_coupon_on_account":{"description":"True if any workspace owned by this user's auth account has redeemed the creator first-month discount coupon.","type":"boolean","default":false,"title":"Has Used Creator Coupon On Account"}},"example":{"allowed_to_extend_character_limit":true,"billing_period":"monthly_period","can_extend_character_limit":true,"can_extend_voice_limit":true,"can_use_instant_voice_cloning":true,"can_use_professional_voice_cloning":true,"character_count":1000,"character_limit":10000,"character_refresh_period":"monthly_period","currency":"usd","current_overage":{"amount":"0","currency":"usd"},"has_open_invoices":true,"has_used_creator_coupon_on_account":false,"has_used_starter_coupon_on_account":false,"max_character_limit_extension":10000,"max_credit_limit_extension":10000,"next_character_count_reset_unix":1738356858,"next_invoice":{"amount_due_cents":1000,"discounts":[{"discount_percent_off":20}],"next_payment_attempt_unix":1738356858,"payment_intent_status":"processing","payment_intent_statusses":["processing","succeeded"],"subtotal_cents":900,"tax_cents":100},"open_invoices":[{"amount_due_cents":1000,"discounts":[{"discount_percent_off":20}],"next_payment_attempt_unix":1738356858,"payment_intent_status":"processing","payment_intent_statusses":["processing","succeeded"],"subtotal_cents":900,"tax_cents":100}],"professional_voice_limit":1,"professional_voice_slots_used":0,"professional_voice_slots_used_in_workspace":0,"status":"active","tier":"starter","voice_add_edit_counter":0,"voice_limit":10,"voice_slots_used":1},"required":["tier","character_count","character_limit","max_character_limit_extension","max_credit_limit_extension","can_extend_character_limit","allowed_to_extend_character_limit","voice_slots_used","professional_voice_slots_used","professional_voice_slots_used_in_workspace","voice_limit","voice_add_edit_counter","professional_voice_limit","can_extend_voice_limit","can_use_instant_voice_cloning","can_use_professional_voice_cloning","current_overage","status","open_invoices","has_open_invoices"],"title":"ExtendedSubscriptionResponseModel","x-fern-type-name":"Subscription"},"ExternalFileSyncInfo":{"description":"Tracks the link back to the original file in an external source.","type":"object","properties":{"type":{"description":"Provider identifier","$ref":"#/components/schemas/ExternalSyncProvider"},"source_entity_id":{"description":"Entity ID in the external system","type":"string","title":"Source Entity Id"},"integration_connection_id":{"description":"Integration connection instance ID","type":"string","title":"Integration Connection Id"},"source_parent_entity_id":{"description":"Folder ID in the external system this file was synced from","type":"string","title":"Source Parent Entity Id"},"source_mime_type":{"description":"Original MIME type in the external system","type":"string","title":"Source Mime Type"},"source_modified_time":{"description":"Last modified time from the external system","type":"string","format":"date-time","title":"Source Modified Time"},"root_folder_id":{"description":"KB folder ID of the sync root, used to query all entities under a sync tree","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"}},"required":["type","source_entity_id","integration_connection_id","source_parent_entity_id","source_mime_type","source_modified_time"],"title":"ExternalFileSyncInfo"},"ExternalFolderSyncInfo":{"description":"Metadata for a KB folder that mirrors an external source folder.","type":"object","properties":{"type":{"description":"Provider identifier","$ref":"#/components/schemas/ExternalSyncProvider"},"source_entity_id":{"description":"Entity ID in the external system","type":"string","title":"Source Entity Id"},"integration_connection_id":{"description":"Integration connection instance ID","type":"string","title":"Integration Connection Id"},"root_folder_id":{"description":"KB folder ID of the sync root. None means this folder is the root.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"},"sync_cursor":{"description":"Opaque cursor for incremental sync, interpreted by the provider","anyOf":[{"type":"string"},{"type":"null"}],"title":"Sync Cursor"},"last_sync_at":{"description":"Unix timestamp of last completed sync","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync At"}},"required":["type","source_entity_id","integration_connection_id"],"title":"ExternalFolderSyncInfo"},"ExternalSyncJobTrigger":{"type":"string","enum":["on_demand","on_connect","auto"],"title":"ExternalSyncJobTrigger"},"ExternalSyncJobType":{"type":"string","enum":["full","incremental"],"title":"ExternalSyncJobType"},"ExternalSyncProvider":{"type":"string","enum":["google_drive"],"title":"ExternalSyncProvider"},"FeatureStatusCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"used":{"type":"boolean","default":false,"title":"Used"}},"title":"FeatureStatusCommonModel"},"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,"title":"Pii Zrm Workspace"},"pii_zrm_agent":{"type":"boolean","default":false,"title":"Pii Zrm Agent"},"tool_dynamic_variable_updates":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"is_livekit":{"type":"boolean","default":false,"title":"Is Livekit"},"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"}},"title":"FeaturesUsageCommonModel"},"FileInputConfig":{"type":"object","properties":{"enabled":{"description":"When enabled, users may attach images or PDFs in chat when the LLM supports multimodal input.","type":"boolean","default":true,"title":"Enabled"},"max_files_per_conversation":{"description":"Maximum number of files that can be uploaded per conversation.","type":"integer","default":10,"maximum":10,"minimum":1,"title":"Max Files Per Conversation"}},"title":"FileInputConfig"},"FileInputConfigWorkflowOverride":{"type":"object","properties":{"enabled":{"description":"When enabled, users may attach images or PDFs in chat when the LLM supports multimodal input.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"max_files_per_conversation":{"description":"Maximum number of files that can be uploaded per conversation.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Files Per Conversation"}},"title":"FileInputConfigWorkflowOverride"},"FileRefreshStatus":{"description":"In-flight/last refresh state for an externally-synced KB file.","type":"object","properties":{"status":{"default":"queued","$ref":"#/components/schemas/CrawlStatus"},"enqueued_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Enqueued At"},"started_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"last_synced_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Synced At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"title":"FileRefreshStatus"},"FineTuningResponseModel":{"type":"object","properties":{"is_allowed_to_fine_tune":{"description":"Whether the user is allowed to fine-tune the voice.","type":"boolean","title":"Is Allowed To Fine Tune"},"state":{"description":"The state of the fine-tuning process for each model.","type":"object","additionalProperties":{"type":"string","enum":["not_started","queued","fine_tuning","fine_tuned","failed","delayed"]},"title":"State"},"verification_failures":{"description":"List of verification failures in the fine-tuning process.","type":"array","items":{"type":"string"},"title":"Verification Failures"},"verification_attempts_count":{"description":"The number of verification attempts in the fine-tuning process.","type":"integer","title":"Verification Attempts Count"},"manual_verification_requested":{"description":"Whether a manual verification was requested for the fine-tuning process.","type":"boolean","title":"Manual Verification Requested"},"language":{"description":"The language of the fine-tuning process.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"progress":{"description":"The progress of the fine-tuning process.","anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Progress"},"message":{"description":"The message of the fine-tuning process.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Message"},"dataset_duration_seconds":{"description":"The duration of the dataset in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Dataset Duration Seconds"},"verification_attempts":{"description":"The number of verification attempts.","anyOf":[{"items":{"$ref":"#/components/schemas/VerificationAttemptResponseModel"},"type":"array"},{"type":"null"}],"title":"Verification Attempts"},"slice_ids":{"description":"List of slice IDs.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Slice Ids"},"manual_verification":{"description":"The manual verification of the fine-tuning process.","anyOf":[{"$ref":"#/components/schemas/ManualVerificationResponseModel"},{"type":"null"}]},"max_verification_attempts":{"description":"The maximum number of verification attempts.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Verification Attempts"},"next_max_verification_attempts_reset_unix_ms":{"description":"The next maximum verification attempts reset time in Unix milliseconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Max Verification Attempts Reset Unix Ms"},"finetuning_state":{"x-fern-type-name":"FinetuningState"}},"example":{"is_allowed_to_fine_tune":true,"manual_verification_requested":false,"state":{"eleven_multilingual_v2":"fine_tuned"},"verification_attempts_count":2,"verification_failures":[]},"required":[],"title":"FineTuningResponseModel","x-fern-type-name":"FineTuningResponse"},"FinetuneCreatedBy":{"type":"string","enum":["self","workspace","elevenlabs"],"title":"FinetuneCreatedBy"},"FinetuneVisibility":{"type":"string","enum":["private","workspace","public"],"title":"FinetuneVisibility"},"FocusGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"}},"title":"FocusGuardrail"},"ForcedAlignmentCharacterResponseModel":{"description":"Model representing a single character with its timing information from the aligner.","type":"object","properties":{"text":{"description":"The character that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the character in seconds.","type":"number","title":"Start"},"end":{"description":"The end time of the character in seconds.","type":"number","title":"End"}},"example":{"end":0.02,"start":0,"text":"H"},"required":["text","start","end"],"title":"ForcedAlignmentCharacterResponseModel"},"ForcedAlignmentResponseModel":{"description":"Model representing the response from the aligner service.","type":"object","properties":{"characters":{"description":"List of characters with their timing information.","type":"array","items":{"$ref":"#/components/schemas/ForcedAlignmentCharacterResponseModel"},"title":"Characters"},"words":{"description":"List of words with their timing information.","type":"array","items":{"$ref":"#/components/schemas/ForcedAlignmentWordResponseModel"},"title":"Words"},"loss":{"description":"The average alignment loss/confidence score for the entire transcript, calculated from all characters.","type":"number","title":"Loss"}},"required":["characters","words","loss"],"title":"ForcedAlignmentResponseModel"},"ForcedAlignmentWordResponseModel":{"description":"Model representing a single word with its timing information from the aligner.","type":"object","properties":{"text":{"description":"The word that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the word in seconds.","type":"number","title":"Start"},"end":{"description":"The end time of the word in seconds.","type":"number","title":"End"},"loss":{"description":"The average alignment loss/confidence score for this word, calculated from its constituent characters.","type":"number","title":"Loss"}},"example":{"end":1.02,"loss":0.12,"start":0,"text":"Hello"},"required":["text","start","end","loss"],"title":"ForcedAlignmentWordResponseModel"},"FrustratedConversationRef":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"start_time_unix_secs":{"type":"integer","title":"Start Time Unix Secs"},"overall_label":{"type":"string","enum":["positive","neutral","negative"],"title":"Overall Label"},"overall_sentiment_score":{"type":"number","title":"Overall Sentiment Score"},"overall_frustration_score":{"type":"number","title":"Overall Frustration Score"}},"required":["conversation_id","agent_id","start_time_unix_secs","overall_label","overall_sentiment_score","overall_frustration_score"],"title":"FrustratedConversationRef"},"GenerationChunk-Input":{"type":"object","properties":{"text":{"description":"The text config to be generated for this chunk. Can contain section name in square brackets, e.g. [Verse 1], lyrics lines, and inline directions in curly braces, e.g. {scratching}.","type":"string","maxLength":6000,"title":"Text"},"duration_ms":{"description":"The duration of the chunk in milliseconds. Must be between 3000ms and 120000ms.","type":"integer","maximum":120000,"minimum":3000,"title":"Duration Ms"},"positive_styles":{"description":"The styles and musical directions that should be present in this chunk. Use English language for best results. The styles for the first chunk are the most important as they set the overall tone and genre. Styles for subsequent chunks can be used to add nuance, progression, emphasis, or change the direction of the song. Aim to have at least 6-7 styles in early chunks until the direction is established. Generic styles like 'great production quality' are good default styles to append to the list.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Styles"},"negative_styles":{"description":"The styles and musical directions that should not be present in this chunk. Use English language for best results. Leaving empty is a good default, only use this field if you want to explicitly avoid a particular style or direction.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Styles"},"context_adherence":{"description":"How much the model adheres to the context of its surrounding chunks. Low adherence means the model can deviate from the context and be more creative. High adherence means the model will be more consistent with the context.","type":"string","default":"high","enum":["low","medium","high"],"title":"Context Adherence"},"conditioning_ref":{"description":"The audio reference to condition the generation on. The first chunk is the most important as it will influence the generation of all subsequent chunks. Thus, if you want to apply conditioning to the entire song, start conditioning from the first chunk.","anyOf":[{"$ref":"#/components/schemas/AudioRefChunk"},{"type":"null"}]},"condition_strength":{"description":"How strongly the model adheres to the conditioning reference. Low strength means the model will be more creative and deviate from the reference. High strength means the model will be more consistent with the reference.","anyOf":[{"type":"string","enum":["low","medium","high","xhigh"]},{"type":"null"}],"title":"Condition Strength"}},"required":["text","duration_ms","positive_styles"],"title":"GenerationChunk"},"GenerationChunk-Output":{"type":"object","properties":{"text":{"description":"The text config to be generated for this chunk. Can contain section name in square brackets, e.g. [Verse 1], lyrics lines, and inline directions in curly braces, e.g. {scratching}.","type":"string","maxLength":6000,"title":"Text"},"duration_ms":{"description":"The duration of the chunk in milliseconds. Must be between 3000ms and 120000ms.","type":"integer","maximum":120000,"minimum":3000,"title":"Duration Ms"},"positive_styles":{"description":"The styles and musical directions that should be present in this chunk. Use English language for best results. The styles for the first chunk are the most important as they set the overall tone and genre. Styles for subsequent chunks can be used to add nuance, progression, emphasis, or change the direction of the song. Aim to have at least 6-7 styles in early chunks until the direction is established. Generic styles like 'great production quality' are good default styles to append to the list.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Styles"},"negative_styles":{"description":"The styles and musical directions that should not be present in this chunk. Use English language for best results. Leaving empty is a good default, only use this field if you want to explicitly avoid a particular style or direction.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Styles"},"context_adherence":{"description":"How much the model adheres to the context of its surrounding chunks. Low adherence means the model can deviate from the context and be more creative. High adherence means the model will be more consistent with the context.","type":"string","default":"high","enum":["low","medium","high"],"title":"Context Adherence"},"conditioning_ref":{"description":"The audio reference to condition the generation on. The first chunk is the most important as it will influence the generation of all subsequent chunks. Thus, if you want to apply conditioning to the entire song, start conditioning from the first chunk.","anyOf":[{"$ref":"#/components/schemas/AudioRefChunk"},{"type":"null"}]},"condition_strength":{"description":"How strongly the model adheres to the conditioning reference. Low strength means the model will be more creative and deviate from the reference. High strength means the model will be more consistent with the reference.","anyOf":[{"type":"string","enum":["low","medium","high","xhigh"]},{"type":"null"}],"title":"Condition Strength"}},"required":["text","duration_ms","positive_styles"],"title":"GenerationChunk"},"GenerationSourceContext":{"type":"object","properties":{"source_type":{"type":"string","default":"generation","const":"generation","title":"Source Type"},"generation_id":{"type":"string","title":"Generation Id"},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"},"model_id":{"type":"string","title":"Model Id"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider"},"generation_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generation Session Id"},"session_iteration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Iteration Id"},"model_parameters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Model Parameters"},"extend_video":{"anyOf":[{"$ref":"#/components/schemas/ReferenceVideo"},{"type":"null"}]}},"required":["generation_id","model_id"],"title":"GenerationSourceContext"},"GenesysRegion":{"type":"string","enum":["us_east_1","eu_west_1","ap_southeast_2","ap_northeast_1","eu_central_1","us_west_2","ca_central_1","ap_northeast_2","eu_west_2","ap_south_1","us_east_2","sa_east_1","me_central_1","ap_northeast_3","eu_central_2","mx_central_1","ap_southeast_1"],"title":"GenesysRegion"},"GetAgentEmbedResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"widget_config":{"$ref":"#/components/schemas/WidgetConfigResponseModel"}},"required":["agent_id","widget_config"],"title":"GetAgentEmbedResponseModel"},"GetAgentKnowledgebaseSizeResponseModel":{"type":"object","properties":{"number_of_pages":{"type":"number","title":"Number Of Pages"}},"required":["number_of_pages"],"title":"GetAgentKnowledgebaseSizeResponseModel"},"GetAgentLinkResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"token":{"description":"The token data for the agent","anyOf":[{"$ref":"#/components/schemas/ConversationTokenResponseModel"},{"type":"null"}]}},"example":{"agent_id":"J3Pbu5gP6NNKBscdCdwB"},"required":["agent_id"],"title":"GetAgentLinkResponseModel"},"GetAgentResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"name":{"description":"The name of the agent","type":"string","title":"Name"},"conversation_config":{"description":"The conversation configuration of the agent","$ref":"#/components/schemas/ConversationalConfigAPIModel-Output"},"metadata":{"description":"The metadata of the agent","$ref":"#/components/schemas/AgentMetadataResponseModel"},"platform_settings":{"description":"The platform settings of the agent","$ref":"#/components/schemas/AgentPlatformSettingsResponseModel"},"phone_numbers":{"description":"The phone numbers of the agent","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"discriminator":{"propertyName":"provider","mapping":{"exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel","twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel"}}},"title":"Phone Numbers"},"whatsapp_accounts":{"description":"WhatsApp accounts assigned to the agent","type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"title":"Whatsapp Accounts"},"workflow":{"description":"The workflow of the agent","$ref":"#/components/schemas/AgentWorkflowResponseModel"},"access_info":{"description":"The access information of the agent for the user","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"tags":{"description":"Agent tags used to categorize the agent","type":"array","items":{"type":"string"},"title":"Tags"},"version_id":{"description":"The ID of the version the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"branch_id":{"description":"The ID of the branch the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"main_branch_id":{"description":"The ID of the main branch for this agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Branch Id"}},"example":{"agent_id":"agent_7101k5zvyjhmfg983brhmhkd98n6","name":"My Agent","workflow":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition","type":"llm"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{"type":"unconditional"},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false,"type":"result"},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true,"type":"result"},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{"type":"unconditional"},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition","type":"llm"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition","type":"llm"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer","type":"dynamic_variable"},{"prompt":"Phone condition","type":"llm","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode","type":"dynamic_variable"},"right":{"type":"string_literal","value":"dev"},"type":"eq_operator"}],"type":"or_operator"},"type":"expression"},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":["entry_to_tool_a"],"entry_behavior":"auto","label":"Entry","position":{"x":0,"y":0},"type":"override_agent"},"failure_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Failure","position":{"x":0,"y":0},"type":"override_agent"},"start_node":{"edge_order":["start_to_entry"],"position":{"x":0,"y":0},"type":"start"},"success_conversation":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Success A","position":{"x":0,"y":0},"type":"override_agent"},"success_end":{"edge_order":[],"position":{"x":0,"y":0},"return_when_nested":true,"type":"end"},"success_phone":{"custom_sip_headers":[],"edge_order":[],"position":{"x":0,"y":0},"require_acceptance":false,"transfer_destination":{"phone_number":"+1234567890","type":"phone"},"transfer_type":"conference","type":"phone_number"},"success_transfer":{"agent_id":"success_transfer_agent","delay_ms":0,"edge_order":[],"enable_nesting":false,"enable_transferred_agent_first_message":false,"position":{"x":0,"y":0},"preserve_client_tts_overrides":false,"type":"standalone_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}],"type":"tool"},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"}],"type":"tool"}},"prevent_subagent_loops":false}},"required":["agent_id","name","conversation_config","metadata"],"title":"GetAgentResponseModel"},"GetAgentTestFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"folder_path":{"description":"The path from the root folder to the current folder.","type":"array","items":{"$ref":"#/components/schemas/AgentTestFolderPathSegmentResponseModel"},"title":"Folder Path"},"children_count":{"description":"The number of direct children (tests and subfolders) in this folder","type":"integer","default":0,"title":"Children Count"}},"required":["id","name"],"title":"GetAgentTestFolderResponseModel"},"GetAgentTopicsResponseModel":{"type":"object","properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/AgentTopicResponseModel"},"title":"Topics"},"window_start_unix_secs":{"type":"integer","title":"Window Start Unix Secs"},"window_end_unix_secs":{"type":"integer","title":"Window End Unix Secs"}},"required":["topics","window_start_unix_secs","window_end_unix_secs"],"title":"GetAgentTopicsResponseModel"},"GetAgentsPageResponseModel":{"type":"object","properties":{"agents":{"description":"A list of agents and their metadata","type":"array","items":{"$ref":"#/components/schemas/AgentSummaryResponseModel"},"title":"Agents"},"next_cursor":{"description":"The next cursor to paginate through the agents","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more agents to paginate through","type":"boolean","title":"Has More"}},"example":{"agents":[{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"agent_id":"J3Pbu5gP6NNKBscdCdwB","archived":false,"created_at_unix_secs":1716153600,"name":"My Agent","tags":["Customer Support","Technical Help","Eleven"]}],"has_more":false,"next_cursor":"123"},"required":["agents","has_more"],"title":"GetAgentsPageResponseModel"},"GetAnalyticsSummaryParams":{"description":"Get a summary of key business analytics for a time period.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_analytics_summary","const":"get_analytics_summary","title":"Smb Tool Type"}},"title":"GetAnalyticsSummaryParams"},"GetAppointmentByConfirmationNumberParams":{"description":"Look up an appointment by the booking confirmation number the caller quotes.\n\nThe confirmation number is the 8-character code shown on the booking\nconfirmation page (e.g. ``#01ABCDEF``). Callers may read it back with or\nwithout the leading ``#`` and with varied spacing; the tool normalizes\nthe input and does a prefix match on the stored calendar item id.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_appointment_by_confirmation_number","const":"get_appointment_by_confirmation_number","title":"Smb Tool Type"}},"title":"GetAppointmentByConfirmationNumberParams"},"GetAudioIsolationHistoryResponseModel":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AudioIsolationHistoryItemResponseModel"},"title":"Items"},"has_more":{"type":"boolean","title":"Has More"}},"required":["items","has_more"],"title":"GetAudioIsolationHistoryResponseModel"},"GetAudioNativeProjectSettingsResponseModel":{"type":"object","properties":{"enabled":{"description":"Whether the project is enabled.","type":"boolean","title":"Enabled"},"snapshot_id":{"description":"The ID of the latest snapshot of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Id"},"settings":{"description":"The settings of the project.","anyOf":[{"$ref":"#/components/schemas/AudioNativeProjectSettingsResponseModel"},{"type":"null"}]}},"example":{"enabled":true,"settings":{"audio_path":"audio/my_project.mp3","audio_url":"https://example.com/audio/my_project.mp3","author":"John Doe","background_color":"#FFFFFF","image":"https://example.com/image.jpg","sessionization":1,"small":false,"status":"ready","text_color":"#000000","title":"My Project"},"snapshot_id":"JBFqnCBsd6RMkjVDRZzb"},"required":["enabled"],"title":"GetAudioNativeProjectSettingsResponseModel"},"GetBookingPageSettingsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_booking_page_settings","const":"get_booking_page_settings","title":"Smb Tool Type"}},"title":"GetBookingPageSettingsParams"},"GetBookingSlugStatusParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_booking_slug_status","const":"get_booking_slug_status","title":"Smb Tool Type"}},"title":"GetBookingSlugStatusParams"},"GetChaptersResponseModel":{"type":"object","properties":{"chapters":{"type":"array","items":{"$ref":"#/components/schemas/ChapterResponseModel"},"title":"Chapters"}},"required":["chapters"],"title":"GetChaptersResponseModel","x-fern-type-name":"GetChaptersResponse"},"GetClientAppointmentsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_client_appointments","const":"get_client_appointments","title":"Smb Tool Type"},"include_cancelled":{"type":"boolean","default":false,"title":"Include Cancelled"}},"title":"GetClientAppointmentsParams"},"GetClientByPhoneParams":{"description":"Look up a client by their exact phone number.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_client_by_phone","const":"get_client_by_phone","title":"Smb Tool Type"}},"title":"GetClientByPhoneParams"},"GetConvAIDashboardSettingsResponseModel":{"type":"object","properties":{"charts":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DashboardCallSuccessChartModel"},{"$ref":"#/components/schemas/DashboardCriteriaChartModel"},{"$ref":"#/components/schemas/DashboardDataCollectionChartModel"}],"discriminator":{"propertyName":"type","mapping":{"call_success":"#/components/schemas/DashboardCallSuccessChartModel","criteria":"#/components/schemas/DashboardCriteriaChartModel","data_collection":"#/components/schemas/DashboardDataCollectionChartModel"}}},"maxItems":4,"title":"Charts"}},"title":"GetConvAIDashboardSettingsResponseModel"},"GetConvAISettingsResponseModel":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"},"can_use_mcp_servers":{"description":"Whether the workspace can use MCP servers","type":"boolean","default":false,"title":"Can Use Mcp Servers"},"rag_retention_period_days":{"type":"integer","default":10,"exclusiveMinimum":0,"maximum":30,"title":"Rag Retention Period Days"},"conversation_embedding_retention_days":{"description":"Days to retain conversation embeddings. None means use the system default (30 days).","anyOf":[{"type":"integer","maximum":365,"exclusiveMinimum":0},{"type":"null"}],"title":"Conversation Embedding Retention Days"},"default_livekit_stack":{"default":"standard","$ref":"#/components/schemas/LivekitStackType"}},"title":"GetConvAISettingsResponseModel"},"GetConversationResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"conversation_product":{"type":"string","default":"agent","title":"Conversation Product"},"status":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"Status"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"version_id":{"description":"The ID of the agent version used for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"metadata":{"$ref":"#/components/schemas/ConversationHistoryMetadataCommonModel"},"analysis":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryAnalysisCommonModel"},{"type":"null"}]},"visited_agents":{"type":"array","items":{"$ref":"#/components/schemas/VisitedAgentRef"},"title":"Visited Agents"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Output"},"environment":{"type":"string","default":"production","title":"Environment"},"conversation_id":{"type":"string","title":"Conversation Id"},"has_audio":{"type":"boolean","title":"Has Audio"},"has_user_audio":{"type":"boolean","title":"Has User Audio"},"has_response_audio":{"type":"boolean","title":"Has Response Audio"},"has_auxiliary_audio":{"type":"boolean","title":"Has Auxiliary Audio"},"transcript":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModel"},"title":"Transcript"},"tag_ids":{"description":"Conversation tag ids assigned to this conversation.","type":"array","items":{"type":"string"},"title":"Tag Ids"},"otlp_traces":{"description":"OpenTelemetry trace payload when the request uses format=opentelemetry; otherwise omitted.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}]}},"example":{"agent_id":"agent_3701k3ttaq12ewp8b7qv5rfyszkz","agent_name":"My agent","conversation_id":"conv_7401k5m9x2p8ec3rqv6dtnhb0fzw","environment":"production","has_audio":true,"has_auxiliary_audio":true,"has_response_audio":true,"has_user_audio":true,"metadata":{"call_duration_secs":10,"start_time_unix_secs":1714423232},"status":"processing","tag_ids":[],"transcript":[{"message":"Hello, how are you?","role":"user","time_in_call_secs":10}],"version_id":"agtvrsn_5xM3yVvZQKV0EfqQpLr2"},"required":["agent_id","status","metadata","conversation_id","has_audio","has_user_audio","has_response_audio","has_auxiliary_audio","transcript"],"title":"GetConversationResponseModel"},"GetConversationTagsPageResponseModel":{"type":"object","properties":{"conversation_tags":{"type":"array","items":{"$ref":"#/components/schemas/ConversationTagResponseModel"},"title":"Conversation Tags"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["conversation_tags","has_more"],"title":"GetConversationTagsPageResponseModel"},"GetConversationUsersPageResponseModel":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/ConversationUserResponseModel"},"title":"Users"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["users","has_more"],"title":"GetConversationUsersPageResponseModel"},"GetConversationsPageResponseModel":{"type":"object","properties":{"conversations":{"type":"array","items":{"$ref":"#/components/schemas/ConversationSummaryResponseModel"},"title":"Conversations"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["conversations","has_more"],"title":"GetConversationsPageResponseModel"},"GetKnowledgeBaseDependentAgentsResponseModel":{"type":"object","properties":{"agents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Agents"},"branches":{"type":"array","items":{"$ref":"#/components/schemas/DependentBranchInfo"},"title":"Branches"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["agents","has_more"],"title":"GetKnowledgeBaseDependentAgentsResponseModel"},"GetKnowledgeBaseFileResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"file","title":"Type"},"extracted_inner_html":{"type":"string","title":"Extracted Inner Html"},"content_format":{"default":"html","$ref":"#/components/schemas/ContentFormat"},"filename":{"type":"string","title":"Filename"},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFileSyncInfo"},{"type":"null"}]},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"refresh_status":{"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.","anyOf":[{"$ref":"#/components/schemas/FileRefreshStatus"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"}},"required":["id","name","metadata","supported_usages","access_info","type","extracted_inner_html","filename"],"title":"GetKnowledgeBaseFileResponseModel"},"GetKnowledgeBaseFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"folder","title":"Type"},"children_count":{"type":"integer","title":"Children Count"},"document_count":{"description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;","type":"integer","title":"Document Count"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"},"active_sync_job":{"description":"Most recent (in-flight or terminal) external sync job for this folder, if any. Used by clients to render sync progress.","anyOf":[{"$ref":"#/components/schemas/KbExternalSyncJob"},{"type":"null"}]}},"required":["id","name","metadata","supported_usages","access_info","type","children_count","document_count"],"title":"GetKnowledgeBaseFolderResponseModel"},"GetKnowledgeBaseListResponseModel":{"type":"object","properties":{"documents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel"}],"discriminator":{"propertyName":"type","mapping":{"file":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel","folder":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel","text":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel","url":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"}}},"title":"Documents"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["documents","has_more"],"title":"GetKnowledgeBaseListResponseModel"},"GetKnowledgeBaseSummaryFileResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"file","title":"Type"},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFileSyncInfo"},{"type":"null"}]},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"refresh_status":{"anyOf":[{"$ref":"#/components/schemas/FileRefreshStatus"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type"],"title":"GetKnowledgeBaseSummaryFileResponseModel"},"GetKnowledgeBaseSummaryFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"folder","title":"Type"},"children_count":{"type":"integer","title":"Children Count"},"document_count":{"description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;","type":"integer","title":"Document Count"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type","children_count","document_count"],"title":"GetKnowledgeBaseSummaryFolderResponseModel"},"GetKnowledgeBaseSummaryTextResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"text","title":"Type"}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type"],"title":"GetKnowledgeBaseSummaryTextResponseModel"},"GetKnowledgeBaseSummaryURLResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"url","title":"Type"},"url":{"type":"string","title":"Url"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type","url"],"title":"GetKnowledgeBaseSummaryURLResponseModel"},"GetKnowledgeBaseTextResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"text","title":"Type"},"extracted_inner_html":{"type":"string","title":"Extracted Inner Html"},"content_format":{"default":"html","$ref":"#/components/schemas/ContentFormat"}},"required":["id","name","metadata","supported_usages","access_info","type","extracted_inner_html"],"title":"GetKnowledgeBaseTextResponseModel"},"GetKnowledgeBaseURLResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"url","title":"Type"},"url":{"type":"string","title":"Url"},"extracted_inner_html":{"type":"string","title":"Extracted Inner Html"},"content_format":{"default":"html","$ref":"#/components/schemas/ContentFormat"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]}},"required":["id","name","metadata","supported_usages","access_info","type","url","extracted_inner_html"],"title":"GetKnowledgeBaseURLResponseModel"},"GetLibraryVoicesResponseModel":{"type":"object","properties":{"voices":{"description":"The list of shared voices","type":"array","items":{"$ref":"#/components/schemas/LibraryVoiceResponseModel"},"title":"Voices"},"has_more":{"description":"Whether there are more shared voices in subsequent pages.","type":"boolean","title":"Has More"},"total_count":{"description":"The total number of shared voices matching the query.","type":"integer","default":0,"title":"Total Count"},"last_sort_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sort Id"}},"example":{"has_more":false,"total_count":0,"voices":[{"accent":"american","age":"young","category":"professional","cloned_by_count":11,"date_unix":1714423232,"description":"Perfectly calm, neutral and strong voice. Great for a young female protagonist.","descriptive":"calm","featured":false,"free_users_allowed":true,"gender":"Female","language":"en","live_moderation_enabled":false,"name":"Alita","play_api_usage_character_count_1y":12852,"preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3","public_owner_id":"63e84100a6bf7874ba37a1bab9a31828a379ec94b891b401653b655c5110880f","rate":1,"usage_character_count_1y":12852,"usage_character_count_7d":12852,"use_case":"characters_animation","verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3"}],"voice_id":"sB1b5zUrxQVAFl2PhZFp"}]},"required":["voices","has_more"],"title":"GetLibraryVoicesResponseModel","x-fern-type-name":"GetLibraryVoicesResponse"},"GetLiveCountResponse":{"type":"object","properties":{"count":{"description":"The number of active ongoing conversations.","type":"integer","title":"Count"}},"examples":[{"count":42}],"required":["count"],"title":"GetLiveCountResponse"},"GetOrCreateRAGIndexRequestModel":{"type":"object","properties":{"document_id":{"description":"ID of the knowledgebase document for which to retrieve the index","type":"string","title":"Document Id"},"create_if_missing":{"description":"Whether to create the RAG index if it does not exist","type":"boolean","title":"Create If Missing"},"model":{"description":"Embedding model to use for the RAG index","$ref":"#/components/schemas/EmbeddingModelEnum"}},"required":["document_id","create_if_missing","model"],"title":"GetOrCreateRAGIndexRequestModel"},"GetPhoneNumberExotelResponseModel":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"phone_number_id":{"description":"The ID of the phone number","type":"string","title":"Phone Number Id"},"assigned_agent":{"description":"The agent that is assigned to the phone number","anyOf":[{"$ref":"#/components/schemas/PhoneNumberAgentInfo"},{"type":"null"}]},"provider":{"description":"Phone provider","type":"string","default":"exotel","const":"exotel","title":"Provider"}},"example":{"label":"Exotel Outbound","phone_number":"+919999999999","phone_number_id":"phnum_X3Pbu5gP6NNKBscdCdwB","provider":"exotel"},"required":["phone_number","label","phone_number_id"],"title":"GetPhoneNumberExotelResponseModel"},"GetPhoneNumberInboundSIPTrunkConfigResponseModel":{"type":"object","properties":{"allowed_addresses":{"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.","type":"array","items":{"type":"string"},"title":"Allowed Addresses"},"allowed_numbers":{"description":"List of phone numbers that are allowed to use the trunk.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Numbers"},"media_encryption":{"$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"has_auth_credentials":{"description":"Whether authentication credentials are configured","type":"boolean","title":"Has Auth Credentials"},"username":{"description":"SIP trunk username (if available)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"remote_domains":{"description":"Domains of remote SIP servers used to validate TLS certificates.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Remote Domains"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"}},"required":["allowed_addresses","allowed_numbers","media_encryption","has_auth_credentials"],"title":"GetPhoneNumberInboundSIPTrunkConfigResponseModel"},"GetPhoneNumberOutboundSIPTrunkConfigResponseModel":{"description":"SIP Trunk configuration details for a phone number","type":"object","properties":{"address":{"description":"Hostname or IP the SIP INVITE is sent to","type":"string","title":"Address"},"transport":{"description":"Protocol to use for SIP transport","$ref":"#/components/schemas/SIPTrunkTransportEnum"},"media_encryption":{"description":"Whether or not to encrypt media (data layer).","$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"headers":{"description":"SIP headers for INVITE request","type":"object","additionalProperties":{"type":"string"},"title":"Headers"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"},"has_auth_credentials":{"description":"Whether authentication credentials are configured","type":"boolean","title":"Has Auth Credentials"},"username":{"description":"SIP trunk username (if available)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"has_outbound_trunk":{"description":"Whether a LiveKit SIP outbound trunk is configured","type":"boolean","default":false,"title":"Has Outbound Trunk"},"enabled_codecs":{"description":"Media codecs that are offered in the SDP for outbound calls. If empty, all supported codecs are offered.","type":"array","items":{"$ref":"#/components/schemas/MediaCodec"},"title":"Enabled Codecs"}},"required":["address","transport","media_encryption","has_auth_credentials"],"title":"GetPhoneNumberOutboundSIPTrunkConfigResponseModel"},"GetPhoneNumberSIPTrunkResponseModel":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"phone_number_id":{"description":"The ID of the phone number","type":"string","title":"Phone Number Id"},"assigned_agent":{"description":"The agent that is assigned to the phone number","anyOf":[{"$ref":"#/components/schemas/PhoneNumberAgentInfo"},{"type":"null"}]},"provider":{"description":"Phone provider","type":"string","default":"sip_trunk","const":"sip_trunk","title":"Provider"},"provider_config":{"anyOf":[{"$ref":"#/components/schemas/GetPhoneNumberOutboundSIPTrunkConfigResponseModel"},{"type":"null"}],"deprecated":true},"outbound_trunk":{"description":"Configuration of the Outbound SIP trunk - if configured.","anyOf":[{"$ref":"#/components/schemas/GetPhoneNumberOutboundSIPTrunkConfigResponseModel"},{"type":"null"}]},"inbound_trunk":{"description":"Configuration of the Inbound SIP trunk - if configured.","anyOf":[{"$ref":"#/components/schemas/GetPhoneNumberInboundSIPTrunkConfigResponseModel"},{"type":"null"}]},"livekit_stack":{"description":"Type of Livekit stack used for this number.","$ref":"#/components/schemas/LivekitStackType"},"store_sip_messages":{"description":"Whether to store SIP messages for this phone number.","type":"boolean","default":true,"title":"Store Sip Messages"}},"example":{"label":"Sales Team","livekit_stack":"standard","phone_number":"+1987654321","phone_number_id":"phone_456","provider":"sip_trunk"},"required":["phone_number","label","phone_number_id","livekit_stack"],"title":"GetPhoneNumberSIPTrunkResponseModel"},"GetPhoneNumberTwilioResponseModel":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"phone_number_id":{"description":"The ID of the phone number","type":"string","title":"Phone Number Id"},"assigned_agent":{"description":"The agent that is assigned to the phone number","anyOf":[{"$ref":"#/components/schemas/PhoneNumberAgentInfo"},{"type":"null"}]},"provider":{"description":"Phone provider","type":"string","default":"twilio","const":"twilio","title":"Provider"}},"example":{"label":"Customer Support","phone_number":"+1234567890","phone_number_id":"phone_123","provider":"twilio"},"required":["phone_number","label","phone_number_id"],"title":"GetPhoneNumberTwilioResponseModel"},"GetProjectsResponseModel":{"type":"object","properties":{"projects":{"description":"A list of projects with their metadata.","type":"array","items":{"$ref":"#/components/schemas/ProjectResponseModel"},"title":"Projects"}},"example":{"projects":[{"access_level":"viewer","author":"John Doe","can_be_downloaded":true,"content_type":"Novel","cover_image_url":"https://example.com/cover.jpg","create_date_unix":1714204800,"created_by_user_id":"Vbtgl3bRdj6lk79rYAgx","creation_meta":{"creation_progress":0.5,"status":"pending","type":"blank"},"default_model_id":"eleven_multilingual_v2","default_paragraph_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_paragraph_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","description":"This is a description of my project.","fiction":"fiction","genres":["Novel","Short Story"],"isbn_number":"978-90-274-3964-2","language":"en","last_conversion_date_unix":1714204800,"mature_content":false,"name":"My Project","original_publication_date":"2025-01-01","project_id":"aw1NgEzBg83R7vgmiJt6","public_share_id":"abc123def456789","quality_check_on":false,"quality_check_on_when_bulk_convert":false,"state":"default","target_audience":"young adult","title":"My Project","volume_normalization":true}]},"required":["projects"],"title":"GetProjectsResponseModel","x-fern-type-name":"GetProjectsResponse"},"GetPronunciationDictionariesMetadataResponseModel":{"type":"object","properties":{"pronunciation_dictionaries":{"description":"A list of pronunciation dictionaries and their metadata.","type":"array","items":{"$ref":"#/components/schemas/GetPronunciationDictionaryMetadataResponseModel"},"title":"Pronunciation Dictionaries"},"next_cursor":{"description":"The next cursor to use for pagination.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more pronunciation dictionaries to fetch.","type":"boolean","title":"Has More"}},"example":{"has_more":false,"next_cursor":"5xM3yVvZQKV0EfqQpLr2","pronunciation_dictionaries":[{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","latest_version_id":"5xM3yVvZQKV0EfqQpLr2","latest_version_rules_num":2,"name":"My Dictionary","permission_on_resource":"admin"}]},"required":["pronunciation_dictionaries","has_more"],"title":"GetPronunciationDictionariesMetadataResponseModel"},"GetPronunciationDictionaryMetadataResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Id"},"latest_version_id":{"description":"The ID of the latest version of the pronunciation dictionary.","type":"string","title":"Latest Version Id"},"latest_version_rules_num":{"description":"The number of rules in the latest version of the pronunciation dictionary.","type":"integer","title":"Latest Version Rules Num"},"name":{"description":"The name of the pronunciation dictionary.","type":"string","title":"Name"},"permission_on_resource":{"description":"The permission on the resource of the pronunciation dictionary.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"},"created_by":{"description":"The user ID of the creator of the pronunciation dictionary.","type":"string","title":"Created By"},"creation_time_unix":{"description":"The creation time of the pronunciation dictionary in Unix timestamp.","type":"integer","title":"Creation Time Unix"},"archived_time_unix":{"description":"The archive time of the pronunciation dictionary in Unix timestamp.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Archived Time Unix"},"description":{"description":"The description of the pronunciation dictionary.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"example":{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","latest_version_id":"5xM3yVvZQKV0EfqQpLr2","latest_version_rules_num":2,"name":"My Dictionary","permission_on_resource":"admin"},"required":["id","latest_version_id","latest_version_rules_num","name","permission_on_resource","created_by","creation_time_unix"],"title":"GetPronunciationDictionaryMetadataResponseModel","x-fern-type-name":"GetPronunciationDictionaryMetadataResponse"},"GetPronunciationDictionaryWithRulesResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Id"},"latest_version_id":{"description":"The ID of the latest version of the pronunciation dictionary.","type":"string","title":"Latest Version Id"},"latest_version_rules_num":{"description":"The number of rules in the latest version of the pronunciation dictionary.","type":"integer","title":"Latest Version Rules Num"},"name":{"description":"The name of the pronunciation dictionary.","type":"string","title":"Name"},"permission_on_resource":{"description":"The permission on the resource of the pronunciation dictionary.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"},"created_by":{"description":"The user ID of the creator of the pronunciation dictionary.","type":"string","title":"Created By"},"creation_time_unix":{"description":"The creation time of the pronunciation dictionary in Unix timestamp.","type":"integer","title":"Creation Time Unix"},"archived_time_unix":{"description":"The archive time of the pronunciation dictionary in Unix timestamp.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Archived Time Unix"},"description":{"description":"The description of the pronunciation dictionary.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rules":{"description":"The rules in the latest version of the pronunciation dictionary.","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleResponseModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleResponseModel"}]},"title":"Rules"}},"example":{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","latest_version_id":"5xM3yVvZQKV0EfqQpLr2","latest_version_rules_num":2,"name":"My Dictionary","permission_on_resource":"admin","rules":[{"alias":"tie-land","string_to_replace":"Thailand","type":"alias"},{"alphabet":"ipa","phoneme":"/təˈmeɪtoʊ/","string_to_replace":"Tomato","type":"phoneme"}]},"required":["id","latest_version_id","latest_version_rules_num","name","permission_on_resource","created_by","creation_time_unix","rules"],"title":"GetPronunciationDictionaryWithRulesResponseModel"},"GetResponseUnitTestResponseModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"GetResponseUnitTestResponseModel"},"GetSIPLogMessagesResponse":{"type":"object","properties":{"sip_messages":{"type":"array","items":{"$ref":"#/components/schemas/SIPLogMessage"},"title":"Sip Messages"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","default":false,"title":"Has More"}},"required":["sip_messages"],"title":"GetSIPLogMessagesResponse"},"GetScheduleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_schedule","const":"get_schedule","title":"Smb Tool Type"},"include_location_filter":{"type":"boolean","default":false,"title":"Include Location Filter"}},"title":"GetScheduleParams"},"GetSecretDependenciesResponseModel":{"type":"object","properties":{"dependencies":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableToolIdentifier"},{"$ref":"#/components/schemas/DependentUnknownToolIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableToolIdentifier","unknown":"#/components/schemas/DependentUnknownToolIdentifier"}}},"type":"array"},{"items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"type":"array"},{"items":{"$ref":"#/components/schemas/DependentPhoneNumberIdentifier"},"type":"array"}],"title":"Dependencies"},"next_cursor":{"description":"Cursor for fetching the next page of dependencies","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["dependencies"],"title":"GetSecretDependenciesResponseModel"},"GetSimulationTestResponseModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"GetSimulationTestResponseModel"},"GetSpeechHistoryResponseModel":{"type":"object","properties":{"history":{"description":"A list of speech history items.","type":"array","items":{"$ref":"#/components/schemas/SpeechHistoryItemResponseModel"},"title":"History"},"last_history_item_id":{"description":"The ID of the last history item.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Last History Item Id"},"has_more":{"description":"Whether there are more history items to fetch.","type":"boolean","title":"Has More"},"scanned_until":{"description":"The timestamp of the last history item.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scanned Until"}},"example":{"has_more":true,"history":[{"character_count_change_from":17189,"character_count_change_to":17231,"content_type":"audio/mpeg","date_unix":1714650306,"history_item_id":"ja9xsmfGhxYcymxGcOGB","model_id":"eleven_multilingual_v2","request_id":"BF0BZg4IwLGBlaVjv9Im","settings":{"similarity_boost":0.5,"stability":0.71,"style":0,"use_speaker_boost":true},"source":"TTS","state":"created","text":"Hello, world!","voice_category":"premade","voice_id":"21m00Tcm4TlvDq8ikWAM","voice_name":"Rachel"}],"last_history_item_id":"ja9xsmfGhxYcymxGcOGB","scanned_until":1714650306},"required":["history","has_more"],"title":"GetSpeechHistoryResponseModel","x-fern-type-name":"GetSpeechHistoryResponse"},"GetTestInvocationsPageResponseModel":{"type":"object","properties":{"meta":{"default":{},"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/TestInvocationSummaryResponseModel"},"title":"Results"},"next_cursor":{"description":"Cursor for the next page of results","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more results available","type":"boolean","title":"Has More"}},"required":["results","has_more"],"title":"GetTestInvocationsPageResponseModel"},"GetTestSuiteInvocationResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"created_at":{"type":"integer","title":"Created At"},"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Id"},"repeat_count":{"type":"integer","default":1,"title":"Repeat Count"},"bucketing_status":{"description":"None when repeat_count==1 (no bucketing). Otherwise tracks bucketing lifecycle.","anyOf":[{"$ref":"#/components/schemas/BucketingStatus"},{"type":"null"}]},"result_groups":{"type":"array","items":{"$ref":"#/components/schemas/TestRunResultSummary"},"title":"Result Groups"},"test_runs":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestRunResponseModel"},"title":"Test Runs"}},"required":["id","test_runs"],"title":"GetTestSuiteInvocationResponseModel"},"GetTestsPageResponseModel":{"type":"object","properties":{"tests":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestSummaryResponseModel"},"title":"Tests"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["tests","has_more"],"title":"GetTestsPageResponseModel"},"GetTestsSummariesByIdsResponseModel":{"type":"object","properties":{"tests":{"description":"Dictionary mapping test IDs to their summary information","type":"object","additionalProperties":{"$ref":"#/components/schemas/UnitTestSummaryResponseModel"},"title":"Tests"}},"required":["tests"],"title":"GetTestsSummariesByIdsResponseModel"},"GetToolCallUnitTestResponseModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Output"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"GetToolCallUnitTestResponseModel"},"GetToolDependentAgentsResponseModel":{"type":"object","properties":{"agents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Agents"},"branches":{"type":"array","items":{"$ref":"#/components/schemas/DependentBranchInfo"},"title":"Branches"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["agents","has_more"],"title":"GetToolDependentAgentsResponseModel"},"GetToolExecutionsPageResponseModel":{"type":"object","properties":{"executions":{"type":"array","items":{"$ref":"#/components/schemas/ToolExecutionResponseModel"},"title":"Executions"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["executions","has_more"],"title":"GetToolExecutionsPageResponseModel"},"GetVoicesResponseModel":{"type":"object","properties":{"voices":{"description":"A list of available voices.","type":"array","items":{"$ref":"#/components/schemas/VoiceResponseModel"},"title":"Voices"}},"example":{"voices":[{"available_for_tiers":["creator","enterprise"],"category":"professional","description":"A warm, expressive voice with a touch of humor.","fine_tuning":{"is_allowed_to_fine_tune":true,"manual_verification_requested":false,"state":{"eleven_multilingual_v2":"fine_tuned"},"verification_attempts_count":2,"verification_failures":[]},"high_quality_base_model_ids":["eleven_v2_flash","eleven_flash_v2","eleven_turbo_v2_5","eleven_multilingual_v2","eleven_v2_5_flash","eleven_flash_v2_5","eleven_turbo_v2"],"is_legacy":false,"is_mixed":false,"is_owner":false,"labels":{"accent":"American","age":"middle-aged","description":"expressive","gender":"female","use_case":"social media"},"name":"Rachel","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3","settings":{"similarity_boost":1,"speed":1,"stability":1,"style":0,"use_speaker_boost":true},"sharing":{"category":"professional","cloned_by_count":50,"date_unix":1714204800,"description":"A female voice with a soft and friendly tone.","disable_at_unix":1714204800,"enabled_in_library":true,"featured":true,"financial_rewards_enabled":true,"free_users_allowed":true,"history_item_sample_id":"DCwhRBWXzGAHq8TQ4Fs18","labels":{"accent":"American","gender":"female"},"liked_by_count":100,"live_moderation_enabled":true,"moderation_check":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"name":"Rachel","notice_period":30,"original_voice_id":"DCwhRBWXzGAHq8TQ4Fs18","public_owner_id":"DCwhRBWXzGAHq8TQ4Fs18","rate":0.05,"reader_app_enabled":true,"reader_restricted_on":[{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"}],"review_status":"allowed","status":"enabled","voice_mixing_allowed":false,"whitelisted_emails":["example@example.com"]},"verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3"}],"voice_id":"21m00Tcm4TlvDq8ikWAM","voice_verification":{"is_verified":true,"language":"en","requires_verification":false,"verification_attempts":[{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"}],"verification_attempts_count":0,"verification_failures":[]}}]},"required":["voices"],"title":"GetVoicesResponseModel","x-fern-type-name":"GetVoicesResponse"},"GetVoicesV2ResponseModel":{"type":"object","properties":{"voices":{"description":"The list of voices matching the query.","type":"array","items":{"$ref":"#/components/schemas/VoiceResponseModel"},"title":"Voices"},"has_more":{"description":"Indicates whether there are more voices available in subsequent pages. Use this flag (and next_page_token) for reliable pagination instead of relying on total_count.","type":"boolean","title":"Has More"},"total_count":{"description":"The total count of voices matching the query. This value is a live snapshot that reflects the current state of the database and may change between requests as users create, modify, or delete voices. For reliable pagination, use the has_more flag instead of relying on this value. Only request this field when you actually need the total count (e.g., for display purposes), as calculating it incurs a performance cost.","type":"integer","title":"Total Count"},"next_page_token":{"description":"Token to retrieve the next page of results. Pass this value to the next request to continue pagination. Null if there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token"}},"required":["voices","has_more","total_count"],"title":"GetVoicesV2ResponseModel","x-fern-type-name":"GetVoicesV2Response"},"GetWhatsAppAccountResponse":{"type":"object","properties":{"business_account_id":{"type":"string","title":"Business Account Id"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"business_account_name":{"type":"string","title":"Business Account Name"},"phone_number_name":{"type":"string","title":"Phone Number Name"},"phone_number":{"type":"string","title":"Phone Number"},"assigned_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Agent Id"},"enable_messaging":{"type":"boolean","default":true,"title":"Enable Messaging"},"enable_audio_message_response":{"type":"boolean","default":true,"title":"Enable Audio Message Response"},"enable_typing_indicator":{"type":"boolean","default":true,"title":"Enable Typing Indicator"},"assigned_agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Agent Name"},"is_token_expired":{"type":"boolean","default":false,"title":"Is Token Expired"}},"required":["business_account_id","phone_number_id","business_account_name","phone_number_name","phone_number","assigned_agent_name"],"title":"GetWhatsAppAccountResponse"},"GetWorkspaceSecretsResponseModel":{"type":"object","properties":{"secrets":{"type":"array","items":{"$ref":"#/components/schemas/ConvAIWorkspaceStoredSecretConfig"},"title":"Secrets"},"next_cursor":{"description":"Cursor for fetching the next page of secrets","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["secrets"],"title":"GetWorkspaceSecretsResponseModel"},"GroupManagementActivityId":{"description":"OCSF Activity IDs for Group Management [3006] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/group_management","type":"integer","enum":[0,1,2,3,4,5,6,7,8,9,99],"title":"GroupManagementActivityId"},"GuardrailExecutionMode":{"type":"string","default":"streaming","enum":["streaming","blocking"],"title":"GuardrailExecutionMode"},"GuardrailsV1-Input":{"type":"object","properties":{"version":{"type":"string","default":"1","const":"1","title":"Version"},"focus":{"$ref":"#/components/schemas/FocusGuardrail"},"prompt_injection":{"$ref":"#/components/schemas/PromptInjectionGuardrail"},"content":{"$ref":"#/components/schemas/ContentGuardrail-Input"},"moderation":{"anyOf":[{"$ref":"#/components/schemas/ModerationGuardrail-Input"},{"type":"null"}],"x-fern-ignore":true},"custom":{"$ref":"#/components/schemas/CustomGuardrail-Input"}},"title":"GuardrailsV1"},"GuardrailsV1-Output":{"type":"object","properties":{"version":{"type":"string","default":"1","const":"1","title":"Version"},"focus":{"$ref":"#/components/schemas/FocusGuardrail"},"prompt_injection":{"$ref":"#/components/schemas/PromptInjectionGuardrail"},"content":{"$ref":"#/components/schemas/ContentGuardrail-Output"},"moderation":{"anyOf":[{"$ref":"#/components/schemas/ModerationGuardrail-Output"},{"type":"null"}],"x-fern-ignore":true},"custom":{"$ref":"#/components/schemas/CustomGuardrail-Output"}},"title":"GuardrailsV1"},"HTTPValidationError":{"type":"object","properties":{"detail":{"type":"array","items":{"$ref":"#/components/schemas/ValidationError"},"title":"Detail"}},"title":"HTTPValidationError","x-fern-type-name":"HTTPValidationError"},"HistoryAlignmentResponseModel":{"type":"object","properties":{"characters":{"description":"The characters in the alignment.","type":"array","items":{"type":"string"},"title":"Characters"},"character_start_times_seconds":{"description":"The start times of the characters in seconds.","type":"array","items":{"type":"number"},"title":"Character Start Times Seconds"},"character_end_times_seconds":{"description":"The end times of the characters in seconds.","type":"array","items":{"type":"number"},"title":"Character End Times Seconds"}},"required":["characters","character_start_times_seconds","character_end_times_seconds"],"title":"HistoryAlignmentResponseModel"},"HistoryAlignmentsResponseModel":{"type":"object","properties":{"alignment":{"description":"The alignment of the text.","$ref":"#/components/schemas/HistoryAlignmentResponseModel"},"normalized_alignment":{"description":"The normalized alignment of the text.","$ref":"#/components/schemas/HistoryAlignmentResponseModel"}},"required":["alignment","normalized_alignment"],"title":"HistoryAlignmentsResponseModel"},"HtmlExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"html","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"HtmlExportOptions"},"HttpRequestModel":{"description":"HTTP request details.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/http_request","type":"object","properties":{"http_method":{"description":"HTTP method (GET, POST, etc.)","type":"string","title":"Http Method"},"url":{"description":"Request URL object","$ref":"#/components/schemas/UrlModel"},"user_agent":{"description":"User agent string","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent"},"x_forwarded_for":{"description":"X-Forwarded-For header as a list","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"X Forwarded For"}},"additionalProperties":false,"required":["http_method","url"],"title":"HttpRequestModel"},"Icon":{"description":"An icon for display in user interfaces.","type":"object","properties":{"src":{"type":"string","title":"Src"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"sizes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sizes"}},"additionalProperties":true,"required":["src"],"title":"Icon"},"ImageAnalysis":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/ImageAnalysisResult"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"ImageAnalysis"},"ImageAnalysisResult":{"type":"object","properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"mood_and_style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mood And Style"},"composition_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Composition Notes"},"visible_text":{"description":"Readable text overlaid or shown in the image, if any.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Text"},"subjects":{"type":"array","items":{"$ref":"#/components/schemas/ImageSubject"},"title":"Subjects"}},"required":["title","description"],"title":"ImageAnalysisResult"},"ImageAvatar":{"type":"object","properties":{"type":{"description":"The type of the avatar","type":"string","default":"image","const":"image","title":"Type"},"url":{"description":"The URL of the avatar","type":"string","default":"","title":"Url"}},"title":"ImageAvatar"},"ImageSubject":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"required":["name","description"],"title":"ImageSubject"},"InboundSIPTrunkConfigRequestModel":{"type":"object","properties":{"allowed_addresses":{"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.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Addresses"},"allowed_numbers":{"description":"List of phone numbers that are allowed to use the trunk.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Numbers"},"media_encryption":{"description":"Whether or not to encrypt media (data layer).","default":"allowed","$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"credentials":{"description":"Optional digest authentication credentials (username/password).","anyOf":[{"$ref":"#/components/schemas/SIPTrunkCredentialsRequestModel"},{"type":"null"}]},"remote_domains":{"description":"Domains of remote SIP servers used to validate TLS certificates.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Remote Domains"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"}},"title":"InboundSIPTrunkConfigRequestModel"},"IntegrationType":{"type":"string","enum":["mcp_server","mcp_integration"],"title":"IntegrationType"},"InteractionBudget":{"type":"string","enum":["realtime","5_minutes","10_minutes","1_hour"],"title":"InteractionBudget"},"InternalAlertingWebhookNotifier":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"url":{"description":"The URL to send alert lifecycle notifications to.","type":"string","maxLength":2048,"title":"Url"},"method":{"description":"HTTP method used when calling the webhook URL.","default":"POST","$ref":"#/components/schemas/AlertingWebhookMethod"},"headers":{"description":"Custom request headers sent with every notification. Secret header values are encrypted at rest and never returned by the API.","type":"array","items":{"$ref":"#/components/schemas/AlertingWebhookHeader"},"maxItems":25,"title":"Headers"}},"required":["url"],"title":"InternalAlertingWebhookNotifier"},"InvoiceResponseModel":{"type":"object","properties":{"amount_due_cents":{"description":"The amount due in cents.","type":"integer","title":"Amount Due Cents"},"subtotal_cents":{"description":"The subtotal amount in cents before tax (exclusive of tax and discounts).","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subtotal Cents"},"tax_cents":{"description":"The tax amount in cents.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tax Cents"},"discount_percent_off":{"description":"Deprecated. Use [discounts] instead. The discount applied to the invoice. E.g. [20.0f] for 20% off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Percent Off"},"discount_amount_off":{"description":"Deprecated. Use [discounts] instead. The discount applied to the invoice. E.g. [20.0f] for 20 cents off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Amount Off"},"discounts":{"description":"The discounts applied to the invoice.","type":"array","items":{"$ref":"#/components/schemas/DiscountResponseModel"},"title":"Discounts"},"next_payment_attempt_unix":{"description":"The Unix timestamp of the next payment attempt. -1 when there is no next payment attempt.","type":"integer","title":"Next Payment Attempt Unix"},"payment_intent_status":{"description":"Deprecated. Use [payment_intent_statusses] instead. The status of this invoice's first payment intent. None when there is no payment intent.","anyOf":[{"type":"string","enum":["canceled","processing","requires_action","requires_capture","requires_confirmation","requires_payment_method","succeeded"]},{"type":"null"}],"title":"Payment Intent Status"},"payment_intent_statusses":{"description":"The statuses of this invoice's payment intents. Empty list when there are no payment intents.","type":"array","items":{"type":"string","enum":["canceled","processing","requires_action","requires_capture","requires_confirmation","requires_payment_method","succeeded"]},"title":"Payment Intent Statusses"}},"example":{"amount_due_cents":1000,"discounts":[{"discount_percent_off":20}],"next_payment_attempt_unix":1738356858,"payment_intent_status":"processing","payment_intent_statusses":["processing","succeeded"],"subtotal_cents":900,"tax_cents":100},"required":["amount_due_cents","discounts","next_payment_attempt_unix","payment_intent_status","payment_intent_statusses"],"title":"InvoiceResponseModel","x-fern-type-name":"InvoiceResponse"},"ItemId":{"type":"string","pattern":"^proditem_[a-z0-9]{26}$"},"KbExternalSyncJob":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ExternalSyncProvider"},"folder_id":{"type":"string","title":"Folder Id"},"integration_connection_id":{"type":"string","title":"Integration Connection Id"},"triggered_by":{"$ref":"#/components/schemas/ExternalSyncJobTrigger"},"status":{"default":"queued","$ref":"#/components/schemas/CrawlStatus"},"sync_type":{"anyOf":[{"$ref":"#/components/schemas/ExternalSyncJobType"},{"type":"null"}]},"items_identified":{"type":"integer","default":0,"title":"Items Identified"},"items_processed":{"type":"integer","default":0,"title":"Items Processed"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"updated_at":{"type":"integer","title":"Updated At"},"id":{"type":"string","title":"Id"},"created_at":{"type":"integer","title":"Created At"}},"required":["type","folder_id","integration_connection_id","triggered_by","updated_at","id","created_at"],"title":"KbExternalSyncJob"},"KnowledgeBaseContentSearchResponseModel":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseContentSearchResult"},"title":"Results"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["results"],"title":"KnowledgeBaseContentSearchResponseModel"},"KnowledgeBaseContentSearchResult":{"type":"object","properties":{"document":{"discriminator":{"propertyName":"type","mapping":{"file":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel","folder":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel","text":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel","url":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel"}],"title":"Document"},"search_snippet":{"anyOf":[{"items":{"$ref":"#/components/schemas/SearchHighlightSegment"},"type":"array"},{"type":"null"}],"title":"Search Snippet"},"score":{"type":"number","title":"Score"}},"required":["document","score"],"title":"KnowledgeBaseContentSearchResult"},"KnowledgeBaseDependentType":{"type":"string","enum":["direct","transitive","all"],"title":"KnowledgeBaseDependentType"},"KnowledgeBaseDocumentChunkResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"content":{"title":"Content","type":"string"}},"required":["id","name","content"],"title":"KnowledgeBaseDocumentChunkResponseModel"},"KnowledgeBaseDocumentChunksResponseModel":{"type":"object","properties":{"chunks":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseDocumentChunkResponseModel"},"title":"Chunks"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["chunks"],"title":"KnowledgeBaseDocumentChunksResponseModel"},"KnowledgeBaseDocumentMetadataResponseModel":{"type":"object","properties":{"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"last_updated_at_unix_secs":{"type":"integer","title":"Last Updated At Unix Secs"},"size_bytes":{"type":"integer","title":"Size Bytes"}},"required":["created_at_unix_secs","last_updated_at_unix_secs","size_bytes"],"title":"KnowledgeBaseDocumentMetadataResponseModel"},"KnowledgeBaseDocumentType":{"type":"string","enum":["file","url","text","folder"],"title":"KnowledgeBaseDocumentType"},"KnowledgeBaseFolderPathSegmentResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"required":["id","name"],"title":"KnowledgeBaseFolderPathSegmentResponseModel"},"KnowledgeBaseFolderPathSegmentSummaryResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"}},"required":["id"],"title":"KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"KnowledgeBaseLocator":{"type":"object","properties":{"type":{"description":"The type of the knowledge base","$ref":"#/components/schemas/KnowledgeBaseDocumentType"},"name":{"description":"The name of the knowledge base","type":"string","title":"Name"},"id":{"description":"The ID of the knowledge base","type":"string","title":"Id"},"usage_mode":{"description":"The usage mode of the knowledge base","default":"auto","$ref":"#/components/schemas/DocumentUsageModeEnum"}},"example":{"id":"123","name":"My Knowledge Base","type":"file","usage_mode":"auto"},"required":["type","name","id"],"title":"KnowledgeBaseLocator"},"KnowledgeBaseRagToolConfig":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"knowledge_base_rag","const":"knowledge_base_rag","title":"System Tool Type"}},"title":"KnowledgeBaseRagToolConfig"},"KnowledgeBaseRagToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"knowledge_base_rag_success","const":"knowledge_base_rag_success","title":"Result Type"},"status":{"default":"success","$ref":"#/components/schemas/KnowledgeBaseRagToolStatus"},"chunk_count":{"description":"Number of relevant chunks retrieved","type":"integer","default":0,"title":"Chunk Count"},"message":{"description":"Human-readable status for the LLM about the search results","type":"string","default":"Referenced knowledge base.","title":"Message"}},"title":"KnowledgeBaseRagToolResultModel"},"KnowledgeBaseRagToolStatus":{"type":"string","default":"success","enum":["success","no_documents","no_results"],"title":"KnowledgeBaseRagToolStatus"},"KnowledgeBaseSortBy":{"type":"string","enum":["name","created_at","updated_at","size"],"title":"KnowledgeBaseSortBy"},"KnowledgeBaseSourceFileUrlResponseModel":{"type":"object","properties":{"signed_url":{"description":"Signed URL to download the source file directly","type":"string","title":"Signed Url"}},"required":["signed_url"],"title":"KnowledgeBaseSourceFileUrlResponseModel"},"KnowledgeBaseSummaryBatchSuccessfulResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"success","const":"success","title":"Status"},"data":{"discriminator":{"propertyName":"type","mapping":{"file":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel","folder":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel","text":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel","url":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel"}],"title":"Data"}},"required":["status","data"],"title":"KnowledgeBaseSummaryBatchSuccessfulResponseModel"},"LLM":{"type":"string","default":"gemini-2.5-flash","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-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","claude-sonnet-4-5","claude-opus-4-7","claude-opus-4-8","claude-sonnet-4-6","claude-sonnet-5","claude-sonnet-4","claude-haiku-4-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","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"},"LLMCategoryUsage":{"type":"object","properties":{"irreversible_generation":{"$ref":"#/components/schemas/LLMUsage-Output"},"initiated_generation":{"$ref":"#/components/schemas/LLMUsage-Output"}},"title":"LLMCategoryUsage"},"LLMDeprecationConfigModel":{"type":"object","properties":{"warning_start_days":{"description":"Number of days before the provider deprecation date when warnings start being shown.","type":"integer","title":"Warning Start Days"},"fallback_start_days":{"description":"Number of days before the provider deprecation date when traffic starts being routed to the replacement model.","type":"integer","title":"Fallback Start Days"},"fallback_complete_days":{"description":"Number of days before the provider deprecation date when all traffic is routed to the replacement model.","type":"integer","title":"Fallback Complete Days"},"fallback_start_percentage":{"description":"Percentage of traffic routed to the replacement model when fallback begins.","type":"integer","title":"Fallback Start Percentage"},"fallback_complete_percentage":{"description":"Percentage of traffic routed to the replacement model when fallback is complete.","type":"integer","title":"Fallback Complete Percentage"}},"example":{"fallback_complete_days":7,"fallback_complete_percentage":100,"fallback_start_days":14,"fallback_start_percentage":25,"warning_start_days":30},"required":["warning_start_days","fallback_start_days","fallback_complete_days","fallback_start_percentage","fallback_complete_percentage"],"title":"LLMDeprecationConfigModel"},"LLMDeprecationInfoModel":{"type":"object","properties":{"llm":{"description":"The identifier of the deprecated LLM model.","$ref":"#/components/schemas/LLM"},"is_deprecated":{"description":"Whether this model is currently deprecated. True if the model is immediately deprecated or within the warning period.","type":"boolean","title":"Is Deprecated"},"is_in_warning_period":{"description":"Whether this model is currently in the warning period before deprecation.","type":"boolean","default":false,"title":"Is In Warning Period"},"is_in_fallback_period":{"description":"Whether traffic is currently being progressively routed to the replacement model.","type":"boolean","default":false,"title":"Is In Fallback Period"},"fallback_percentage":{"description":"Current percentage of traffic being routed to the replacement model (0-100).","type":"integer","default":0,"title":"Fallback Percentage"},"provider_deprecation_date":{"description":"The date when the model provider will deprecate this model. Null for immediately deprecated models.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Provider Deprecation Date"},"replacement_model":{"description":"The model that replaces this deprecated model. Traffic will be automatically routed to this model.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"deprecation_config":{"description":"Custom deprecation timing configuration for this model. Null if using the default configuration.","anyOf":[{"$ref":"#/components/schemas/LLMDeprecationConfigModel"},{"type":"null"}]}},"example":{"fallback_percentage":0,"is_deprecated":true,"is_in_fallback_period":false,"is_in_warning_period":true,"llm":"gpt-4o-mini","provider_deprecation_date":"2025-06-01T00:00:00Z","replacement_model":"gpt-4o"},"required":["llm","is_deprecated"],"title":"LLMDeprecationInfoModel"},"LLMInfoModel-Input":{"type":"object","properties":{"llm":{"description":"The model identifier.","$ref":"#/components/schemas/LLM"},"is_checkpoint":{"description":"Whether this is a pinned checkpoint version of a model rather than a top-level alias.","type":"boolean","title":"Is Checkpoint"},"max_tokens_limit":{"description":"Maximum number of output tokens the model can generate.","type":"integer","title":"Max Tokens Limit"},"max_context_limit":{"description":"Maximum number of input context tokens the model supports.","type":"integer","title":"Max Context Limit"},"supports_image_input":{"description":"Whether the model supports image file inputs during conversations.","type":"boolean","title":"Supports Image Input"},"supports_document_input":{"description":"Whether the model supports document (PDF) file inputs during conversations.","type":"boolean","title":"Supports Document Input"},"supports_parallel_tool_calls":{"description":"Whether the model supports calling multiple tools in parallel.","type":"boolean","title":"Supports Parallel Tool Calls"},"available_reasoning_efforts":{"description":"Available reasoning effort levels for this model. Null if the model does not support configurable reasoning.","anyOf":[{"items":{"$ref":"#/components/schemas/LLMReasoningEffort"},"type":"array"},{"type":"null"}],"title":"Available Reasoning Efforts"},"deprecation_info":{"description":"Deprecation information if this model is deprecated or scheduled for deprecation. Null if the model is not affected.","anyOf":[{"$ref":"#/components/schemas/LLMDeprecationInfoModel"},{"type":"null"}]},"regional_processing_surcharge":{"description":"Regional processing surcharge details if this model has additional costs in the current deployment region. Null if no surcharge applies.","anyOf":[{"$ref":"#/components/schemas/RegionalProcessingSurchargeInfo"},{"type":"null"}]}},"example":{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true},"required":["llm","is_checkpoint","max_tokens_limit","max_context_limit","supports_image_input","supports_document_input","supports_parallel_tool_calls"],"title":"LLMInfoModel"},"LLMInfoModel-Output":{"type":"object","properties":{"llm":{"description":"The model identifier.","$ref":"#/components/schemas/LLM"},"is_checkpoint":{"description":"Whether this is a pinned checkpoint version of a model rather than a top-level alias.","type":"boolean","title":"Is Checkpoint"},"max_tokens_limit":{"description":"Maximum number of output tokens the model can generate.","type":"integer","title":"Max Tokens Limit"},"max_context_limit":{"description":"Maximum number of input context tokens the model supports.","type":"integer","title":"Max Context Limit"},"supports_image_input":{"description":"Whether the model supports image file inputs during conversations.","type":"boolean","title":"Supports Image Input"},"supports_document_input":{"description":"Whether the model supports document (PDF) file inputs during conversations.","type":"boolean","title":"Supports Document Input"},"supports_parallel_tool_calls":{"description":"Whether the model supports calling multiple tools in parallel.","type":"boolean","title":"Supports Parallel Tool Calls"},"available_reasoning_efforts":{"description":"Available reasoning effort levels for this model. Null if the model does not support configurable reasoning.","anyOf":[{"items":{"$ref":"#/components/schemas/LLMReasoningEffort"},"type":"array"},{"type":"null"}],"title":"Available Reasoning Efforts"},"deprecation_info":{"description":"Deprecation information if this model is deprecated or scheduled for deprecation. Null if the model is not affected.","anyOf":[{"$ref":"#/components/schemas/LLMDeprecationInfoModel"},{"type":"null"}]},"regional_processing_surcharge":{"description":"Regional processing surcharge details if this model has additional costs in the current deployment region. Null if no surcharge applies.","anyOf":[{"$ref":"#/components/schemas/RegionalProcessingSurchargeInfo"},{"type":"null"}]}},"example":{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true},"required":["llm","is_checkpoint","max_tokens_limit","max_context_limit","supports_image_input","supports_document_input","supports_parallel_tool_calls"],"title":"LLMInfoModel"},"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"},"LLMListResponseModel-Input":{"type":"object","properties":{"llms":{"description":"List of all available LLM models that can be used with agents.","type":"array","items":{"$ref":"#/components/schemas/LLMInfoModel-Input"},"title":"Llms"},"default_deprecation_config":{"description":"The default deprecation timing configuration used for models without a custom override.","$ref":"#/components/schemas/LLMDeprecationConfigModel"}},"example":{"default_deprecation_config":{"fallback_complete_days":7,"fallback_complete_percentage":100,"fallback_start_days":14,"fallback_start_percentage":25,"warning_start_days":30},"llms":[{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true}]},"required":["llms","default_deprecation_config"],"title":"LLMListResponseModel"},"LLMListResponseModel-Output":{"type":"object","properties":{"llms":{"description":"List of all available LLM models that can be used with agents.","type":"array","items":{"$ref":"#/components/schemas/LLMInfoModel-Output"},"title":"Llms"},"default_deprecation_config":{"description":"The default deprecation timing configuration used for models without a custom override.","$ref":"#/components/schemas/LLMDeprecationConfigModel"}},"example":{"default_deprecation_config":{"fallback_complete_days":7,"fallback_complete_percentage":100,"fallback_start_days":14,"fallback_start_percentage":25,"warning_start_days":30},"llms":[{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true}]},"required":["llms","default_deprecation_config"],"title":"LLMListResponseModel"},"LLMLiteralJsonSchemaProperty":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["boolean","string","integer","number"]},{"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2}],"title":"Type"},"description":{"type":"string","minLength":0,"title":"Description"},"enum":{"description":"List of allowed string values for string type parameters","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum"}},"required":["type","description"],"title":"LLMLiteralJsonSchemaProperty"},"LLMParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"llm","title":"Type"},"description":{"description":"A description of the evaluation strategy to use for the test.","type":"string","title":"Description"}},"required":["type","description"],"title":"LLMParameterEvaluationStrategy"},"LLMReasoningEffort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh","max"],"title":"LLMReasoningEffort"},"LLMSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"llm","const":"llm","title":"Source"},"prompt":{"description":"Prompt override for the LLM. If not provided, the original schema description is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"}},"title":"LLMSchemaOverride"},"LLMTokensCategoryUsage":{"type":"object","properties":{"tokens":{"type":"integer","default":0,"title":"Tokens"},"price":{"type":"number","default":0,"title":"Price"}},"title":"LLMTokensCategoryUsage"},"LLMUsage-Input":{"type":"object","properties":{"model_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LLMInputOutputTokensUsage"},"propertyNames":{"$ref":"#/components/schemas/LLM"},"title":"Model Usage"}},"title":"LLMUsage"},"LLMUsage-Output":{"type":"object","properties":{"model_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LLMInputOutputTokensUsage"},"propertyNames":{"$ref":"#/components/schemas/LLM"},"title":"Model Usage"}},"title":"LLMUsage"},"LLMUsageCalculatorLLMResponseModel":{"type":"object","properties":{"llm":{"$ref":"#/components/schemas/LLM"},"price_per_minute":{"type":"number","title":"Price Per Minute"}},"required":["llm","price_per_minute"],"title":"LLMUsageCalculatorLLMResponseModel"},"LLMUsageCalculatorPublicRequestModel":{"type":"object","properties":{"prompt_length":{"description":"Length of the prompt in characters.","type":"integer","title":"Prompt Length"},"number_of_pages":{"description":"Pages of content in PDF documents or URLs in the agent's knowledge base.","type":"integer","title":"Number Of Pages"},"rag_enabled":{"description":"Whether RAG is enabled.","type":"boolean","title":"Rag Enabled"}},"required":["prompt_length","number_of_pages","rag_enabled"],"title":"LLMUsageCalculatorPublicRequestModel"},"LLMUsageCalculatorRequestModel":{"type":"object","properties":{"prompt_length":{"description":"Length of the prompt in characters.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Length"},"number_of_pages":{"description":"Pages of content in pdf documents OR urls in agent's Knowledge Base.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Pages"},"rag_enabled":{"description":"Whether RAG is enabled.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rag Enabled"}},"title":"LLMUsageCalculatorRequestModel"},"LLMUsageCalculatorResponseModel":{"type":"object","properties":{"llm_prices":{"type":"array","items":{"$ref":"#/components/schemas/LLMUsageCalculatorLLMResponseModel"},"title":"Llm Prices"}},"required":["llm_prices"],"title":"LLMUsageCalculatorResponseModel"},"LanguageAddedResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"LanguageAddedResponse"},"LanguageDetectionToolConfig":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"language_detection","const":"language_detection","title":"System Tool Type"}},"title":"LanguageDetectionToolConfig"},"LanguageDetectionToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"language_detection_success","const":"language_detection_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"title":"LanguageDetectionToolResultModel"},"LanguageInfo":{"type":"object","properties":{"code":{"description":"The language code (e.g. 'en', 'fr', 'es-ES').","type":"string","title":"Code"},"label":{"description":"The human-readable language name (e.g. 'English', 'French', 'Spanish (Spain)').","type":"string","title":"Label"}},"example":{"code":"es-ES","label":"Spanish (Spain)"},"required":["code","label"],"title":"LanguageInfo"},"LanguagePairInfo":{"type":"object","properties":{"source_language":{"description":"The source language.","$ref":"#/components/schemas/LanguageInfo"},"destination_languages":{"description":"The available destination languages for this source language.","type":"array","items":{"$ref":"#/components/schemas/LanguageInfo"},"title":"Destination Languages"}},"example":{"destination_languages":[{"code":"es-ES","label":"Spanish (Spain)"},{"code":"fr","label":"French"}],"source_language":{"code":"en","label":"English"}},"required":["source_language","destination_languages"],"title":"LanguagePairInfo"},"LanguagePreset-Input":{"type":"object","properties":{"overrides":{"description":"The overrides for the language preset","$ref":"#/components/schemas/ConversationConfigClientOverride-Input"},"first_message_translation":{"description":"The translation of the first message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]},"soft_timeout_translation":{"description":"The translation of the soft timeout message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]}},"required":["overrides"],"title":"LanguagePreset"},"LanguagePreset-Output":{"type":"object","properties":{"overrides":{"description":"The overrides for the language preset","$ref":"#/components/schemas/ConversationConfigClientOverride-Output"},"first_message_translation":{"description":"The translation of the first message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]},"soft_timeout_translation":{"description":"The translation of the soft timeout message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]}},"required":["overrides"],"title":"LanguagePreset"},"LanguagePresetTranslation":{"type":"object","properties":{"source_hash":{"type":"string","title":"Source Hash"},"text":{"type":"string","title":"Text"}},"required":["source_hash","text"],"title":"LanguagePresetTranslation"},"LanguageResponseModel":{"type":"object","properties":{"language_id":{"description":"The unique identifier of the language.","type":"string","title":"Language Id"},"name":{"description":"The name of the language.","type":"string","title":"Name"}},"example":{"language_id":"en","name":"English"},"required":["language_id","name"],"title":"LanguageResponseModel","x-fern-type-name":"LanguageResponse"},"LanguagesResponse":{"discriminator":{"propertyName":"kind","mapping":{"pair":"#/components/schemas/PairedLanguagesResponse","single":"#/components/schemas/SingleLanguagesResponse"}},"oneOf":[{"$ref":"#/components/schemas/PairedLanguagesResponse"},{"$ref":"#/components/schemas/SingleLanguagesResponse"}]},"LeaveMessageParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"leave_message","const":"leave_message","title":"Smb Tool Type"}},"title":"LeaveMessageParams"},"LibraryVoiceResponseModel":{"type":"object","properties":{"public_owner_id":{"description":"The public owner id of the voice.","type":"string","title":"Public Owner Id"},"voice_id":{"description":"The id of the voice.","type":"string","title":"Voice Id"},"date_unix":{"description":"The date the voice was added to the library in Unix time.","type":"integer","title":"Date Unix"},"name":{"description":"The name of the voice.","type":"string","title":"Name"},"accent":{"description":"The accent of the voice.","type":"string","title":"Accent"},"gender":{"description":"The gender of the voice.","type":"string","title":"Gender"},"age":{"description":"The age of the voice.","type":"string","title":"Age"},"descriptive":{"description":"The descriptive of the voice.","type":"string","title":"Descriptive"},"use_case":{"description":"The use case of the voice.","type":"string","title":"Use Case"},"category":{"description":"The category of the voice.","type":"string","enum":["generated","cloned","premade","professional","famous","high_quality"],"title":"Category"},"language":{"description":"The language of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"locale":{"description":"The locale of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"description":{"description":"The description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"preview_url":{"description":"The preview URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"},"usage_character_count_1y":{"description":"The usage character count of the voice in the last year.","type":"integer","title":"Usage Character Count 1Y"},"usage_character_count_7d":{"description":"The usage character count of the voice in the last 7 days.","type":"integer","title":"Usage Character Count 7D"},"play_api_usage_character_count_1y":{"description":"The play API usage character count of the voice in the last year.","type":"integer","title":"Play Api Usage Character Count 1Y"},"cloned_by_count":{"description":"The number of times the voice has been cloned.","type":"integer","title":"Cloned By Count"},"rate":{"description":"The rate multiplier of the voice.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"},"fiat_rate":{"description":"The rate of the voice in USD per 1000 credits. null if default","anyOf":[{"type":"number"},{"type":"null"}],"title":"Fiat Rate"},"free_users_allowed":{"description":"Whether free users are allowed to use the voice.","type":"boolean","title":"Free Users Allowed"},"live_moderation_enabled":{"description":"Whether live moderation is enabled for the voice.","type":"boolean","title":"Live Moderation Enabled"},"featured":{"description":"Whether the voice is featured.","type":"boolean","title":"Featured"},"verified_languages":{"description":"The verified languages of the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/VerifiedVoiceLanguageResponseModel"},"type":"array"},{"type":"null"}],"title":"Verified Languages"},"notice_period":{"description":"The notice period of the voice.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Notice Period"},"instagram_username":{"description":"The Instagram username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instagram Username"},"twitter_username":{"description":"The Twitter username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitter Username"},"youtube_username":{"description":"The YouTube username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Youtube Username"},"tiktok_username":{"description":"The TikTok username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiktok Username"},"image_url":{"description":"The image URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"is_added_by_user":{"description":"Whether the voice was added by the user.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Added By User"},"is_bookmarked":{"description":"Whether the voice is bookmarked by the current user. Only relevant when is_added_by_user is True.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Bookmarked"}},"example":{"accent":"american","age":"young","category":"professional","cloned_by_count":11,"date_unix":1714423232,"description":"Perfectly calm, neutral and strong voice. Great for a young female protagonist.","descriptive":"calm","featured":false,"free_users_allowed":true,"gender":"Female","language":"en","live_moderation_enabled":false,"name":"Alita","play_api_usage_character_count_1y":12852,"preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3","public_owner_id":"63e84100a6bf7874ba37a1bab9a31828a379ec94b891b401653b655c5110880f","rate":1,"usage_character_count_1y":12852,"usage_character_count_7d":12852,"use_case":"characters_animation","verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3"}],"voice_id":"sB1b5zUrxQVAFl2PhZFp"},"required":["public_owner_id","voice_id","date_unix","name","accent","gender","age","descriptive","use_case","category","usage_character_count_1y","usage_character_count_7d","play_api_usage_character_count_1y","cloned_by_count","free_users_allowed","live_moderation_enabled","featured"],"title":"LibraryVoiceResponseModel","x-fern-type-name":"LibraryVoiceResponse"},"ListAgentProceduresParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_agent_procedures","const":"list_agent_procedures","title":"Smb Tool Type"}},"title":"ListAgentProceduresParams"},"ListAgentReferencesParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_agent_references","const":"list_agent_references","title":"Smb Tool Type"}},"title":"ListAgentReferencesParams"},"ListAgentRulesParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_agent_rules","const":"list_agent_rules","title":"Smb Tool Type"}},"title":"ListAgentRulesParams"},"ListAssetsParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_assets","const":"list_assets","title":"Smb Tool Type"}},"title":"ListAssetsParams"},"ListAuthConnectionsResponse":{"type":"object","properties":{"auth_connections":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/OAuth2ClientCredsResponse"},{"$ref":"#/components/schemas/RefreshTokenAuthResponse"},{"$ref":"#/components/schemas/BasicAuthResponse"},{"$ref":"#/components/schemas/BearerAuthResponse"},{"$ref":"#/components/schemas/OAuth2JWTResponse"},{"$ref":"#/components/schemas/PrivateKeyJWTResponse"},{"$ref":"#/components/schemas/MTLSAuthResponse"},{"$ref":"#/components/schemas/CustomHeaderAuthResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse"},{"$ref":"#/components/schemas/WhatsAppAuthResponse"},{"$ref":"#/components/schemas/SlackBotAuthResponse"},{"$ref":"#/components/schemas/UrlSecretAuthResponse"}],"description":"The type of auth connection config","discriminator":{"propertyName":"auth_type","mapping":{"api_integration_oauth2_auth_code":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse","api_integration_oauth2_custom_app":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse","basic_auth":"#/components/schemas/BasicAuthResponse","bearer_auth":"#/components/schemas/BearerAuthResponse","custom_header_auth":"#/components/schemas/CustomHeaderAuthResponse","mtls":"#/components/schemas/MTLSAuthResponse","oauth2_client_credentials":"#/components/schemas/OAuth2ClientCredsResponse","oauth2_jwt":"#/components/schemas/OAuth2JWTResponse","private_key_jwt":"#/components/schemas/PrivateKeyJWTResponse","refresh_token_auth":"#/components/schemas/RefreshTokenAuthResponse","slack_bot_auth":"#/components/schemas/SlackBotAuthResponse","url_secret":"#/components/schemas/UrlSecretAuthResponse","whatsapp_auth":"#/components/schemas/WhatsAppAuthResponse"}}},"title":"Auth Connections"}},"required":["auth_connections"],"title":"ListAuthConnectionsResponse"},"ListCalendarEventsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_calendar_events","const":"list_calendar_events","title":"Smb Tool Type"},"include_cancelled":{"type":"boolean","default":false,"title":"Include Cancelled"}},"title":"ListCalendarEventsParams"},"ListClientInteractionsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_client_interactions","const":"list_client_interactions","title":"Smb Tool Type"}},"title":"ListClientInteractionsParams"},"ListClientsParams":{"description":"List clients ordered by most recently updated, with an optional limit.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_clients","const":"list_clients","title":"Smb Tool Type"}},"title":"ListClientsParams"},"ListCustomerFacingAgentsParams":{"description":"List every customer-facing agent on the workspace.\n\nThe assistant uses this whenever it needs to act on a specific customer-facing\nagent (rules, config edits, etc.) so it can pick the right ``agent_id`` to pass\nto mutating tools. Mirrors the ``list_services`` / ``list_clients``\npattern: read once, then mutate by id.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_customer_facing_agents","const":"list_customer_facing_agents","title":"Smb Tool Type"}},"title":"ListCustomerFacingAgentsParams"},"ListGroupSessionsParams":{"description":"List scheduled group sessions for a group service in a date range.\n\nGroup services are scheduled in advance (e.g. yoga classes, workshops) and\ncallers register against an existing session. Use this for group services;\nuse ``check_service_availability`` for appointment / rental services.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_group_sessions","const":"list_group_sessions","title":"Smb Tool Type"}},"title":"ListGroupSessionsParams"},"ListHolidaysParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_holidays","const":"list_holidays","title":"Smb Tool Type"}},"title":"ListHolidaysParams"},"ListLocationsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_locations","const":"list_locations","title":"Smb Tool Type"}},"title":"ListLocationsParams"},"ListMCPToolsResponseModel":{"description":"Response model for testing tools available on an MCP server.","type":"object","properties":{"success":{"description":"Indicates if the operation was successful.","type":"boolean","title":"Success"},"tools":{"description":"A list of tools available on the MCP server.","type":"array","items":{"$ref":"#/components/schemas/Tool"},"title":"Tools"},"error_message":{"description":"Error message if the operation was not successful.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"example":{"success":true,"tools":[{"description":"Gets current weather conditions for a location.","inputSchema":{"properties":{"latitude":{"description":"Latitude","type":"string"},"longitude":{"description":"Longitude","type":"string"}},"required":["latitude","longitude"],"type":"object"},"name":"weather_by_zapier_get_current"},{"description":"Description of tool2","inputSchema":{"properties":{},"type":"object"},"name":"tool2"}]},"required":["success","tools"],"title":"ListMCPToolsResponseModel"},"ListOrdersResponse":{"type":"object","properties":{"orders":{"description":"The list of orders matching the query.","type":"array","items":{"$ref":"#/components/schemas/OrderSummary"},"title":"Orders"}},"example":{"orders":[{"name":"Spanish Dubs","order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","state":"submitted","submitted_at":"2025-03-15T10:30:00Z","total_amount_usd":11,"updated_at":"2025-03-15T10:30:00Z"}]},"required":["orders"],"title":"ListOrdersResponse"},"ListProductsParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_products","const":"list_products","title":"Smb Tool Type"}},"title":"ListProductsParams"},"ListResponseMeta":{"type":"object","properties":{"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page"},"page_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Size"}},"title":"ListResponseMeta"},"ListResponse_AgentBranchSummary_":{"type":"object","properties":{"meta":{"default":{},"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/AgentBranchSummary"},"title":"Results"}},"required":["results"],"title":"ListResponse[AgentBranchSummary]"},"ListServicesParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_services","const":"list_services","title":"Smb Tool Type"}},"title":"ListServicesParams"},"ListSpeechEnginesResponse":{"type":"object","properties":{"speech_engines":{"description":"The speech engines matching the query","type":"array","items":{"$ref":"#/components/schemas/SpeechEngineSummaryResponse"},"title":"Speech Engines"},"next_cursor":{"description":"Cursor for fetching the next page","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more results","type":"boolean","title":"Has More"}},"example":{"has_more":false,"speech_engines":[{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"created_at_unix_secs":1714000000,"name":"My Speech Engine","speech_engine_id":"seng_3701k3ttaq12ewp8b7qv5rfyszkz","tags":["production","v1"]}]},"required":["speech_engines","has_more"],"title":"ListSpeechEnginesResponse"},"ListStaffParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_staff","const":"list_staff","title":"Smb Tool Type"}},"title":"ListStaffParams"},"ListTestsByIdsRequestModel":{"type":"object","properties":{"test_ids":{"description":"List of test IDs to fetch. No duplicates allowed.","type":"array","items":{"type":"string"},"examples":[["test_id_1","test_id_2"]],"title":"Test Ids"}},"required":["test_ids"],"title":"ListTestsByIdsRequestModel"},"ListWhatsAppAccountsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"title":"Items"}},"required":["items"],"title":"ListWhatsAppAccountsResponse"},"LiteralJsonSchemaProperty":{"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.","type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["boolean","string","integer","number"]},{"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2}],"title":"Type"},"description":{"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.","type":"string","default":"","title":"Description"},"enum":{"description":"List of allowed string values for string type parameters","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum"},"is_system_provided":{"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.","type":"boolean","default":false,"title":"Is System Provided"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"allowed_values_dynamic_variable":{"description":"When set, the LLM provides the value but the runtime rejects any value not present in the list held by this dynamic variable. 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.","type":"string","default":"","title":"Allowed Values Dynamic Variable"},"constant_value":{"description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted.","default":"","anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}],"title":"Constant Value"},"is_omitted":{"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.","type":"boolean","default":false,"title":"Is Omitted"}},"example":{"description":"A user-provided message","type":"string"},"required":["type"],"title":"LiteralJsonSchemaProperty"},"LivekitStackType":{"type":"string","default":"standard","enum":["standard","static"],"title":"LivekitStackType"},"LoadMemoryEntryToolErrorStatus":{"type":"string","enum":["not_found","invalid_id"]},"LoadableMemoryEntry":{"type":"object","properties":{"entry_id":{"type":"string","title":"Entry Id"},"summary":{"type":"string","title":"Summary"},"text":{"type":"string","title":"Text"}},"required":["entry_id","summary","text"],"title":"LoadableMemoryEntry"},"LockReason":{"type":"string","enum":["trial_ended","subscription_downgrade","exposed_publicly","self_disabled"],"title":"LockReason"},"MCPApprovalPolicy":{"description":"Defines the MCP server-level approval policy for tool execution.","type":"string","default":"require_approval_all","enum":["auto_approve_all","require_approval_all","require_approval_per_tool"],"title":"MCPApprovalPolicy"},"MCPApprovalPolicyUpdateRequestModel":{"description":"Request model for updating MCP Server approval mode.","type":"object","properties":{"approval_policy":{"description":"The approval mode to set for the MCP server","$ref":"#/components/schemas/MCPApprovalPolicy"}},"required":["approval_policy"],"title":"MCPApprovalPolicyUpdateRequestModel"},"MCPServerConfig-Input":{"type":"object","properties":{"approval_policy":{"default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"tool_approval_hashes":{"description":"List of tool approval hashes for per-tool approval when approval_policy is REQUIRE_APPROVAL_PER_TOOL","type":"array","items":{"$ref":"#/components/schemas/MCPToolApprovalHash"},"title":"Tool Approval Hashes"},"transport":{"description":"The transport type used to connect to the MCP server","default":"SSE","$ref":"#/components/schemas/MCPServerTransport"},"url":{"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","anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"}],"title":"Url"},"secret_token":{"description":"The secret token (Authorization header) stored as a workspace secret or in-place secret","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIUserSecretDBModel"},{"type":"null"}],"title":"Secret Token"},"request_headers":{"description":"The headers included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"auth_connection":{"description":"Optional auth connection to use for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"},"name":{"type":"string","title":"Name"},"description":{"type":"string","default":"","title":"Description"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, all tools from this MCP server will require pre-tool execution speech.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"disable_interruptions":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}]},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play for all tools from this MCP server","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"tool_config_overrides":{"description":"List of per-tool configuration overrides that override the server-level defaults for specific tools","type":"array","items":{"$ref":"#/components/schemas/MCPToolConfigOverride-Input"},"title":"Tool Config Overrides"},"disable_compression":{"description":"Whether to disable HTTP compression for this MCP server. Enable this if the server does not support compressed responses.","type":"boolean","default":false,"title":"Disable Compression"}},"required":["url","name"],"title":"MCPServerConfig"},"MCPServerConfig-Output":{"type":"object","properties":{"approval_policy":{"default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"tool_approval_hashes":{"description":"List of tool approval hashes for per-tool approval when approval_policy is REQUIRE_APPROVAL_PER_TOOL","type":"array","items":{"$ref":"#/components/schemas/MCPToolApprovalHash"},"title":"Tool Approval Hashes"},"transport":{"description":"The transport type used to connect to the MCP server","default":"SSE","$ref":"#/components/schemas/MCPServerTransport"},"url":{"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","anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"}],"title":"Url"},"secret_token":{"description":"The secret token (Authorization header) stored as a workspace secret or in-place secret","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIUserSecretDBModel"},{"type":"null"}],"title":"Secret Token"},"request_headers":{"description":"The headers included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"auth_connection":{"description":"Optional auth connection to use for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"},"name":{"type":"string","title":"Name"},"description":{"type":"string","default":"","title":"Description"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, all tools from this MCP server will require pre-tool execution speech.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"disable_interruptions":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}]},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play for all tools from this MCP server","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"tool_config_overrides":{"description":"List of per-tool configuration overrides that override the server-level defaults for specific tools","type":"array","items":{"$ref":"#/components/schemas/MCPToolConfigOverride-Output"},"title":"Tool Config Overrides"},"disable_compression":{"description":"Whether to disable HTTP compression for this MCP server. Enable this if the server does not support compressed responses.","type":"boolean","default":false,"title":"Disable Compression"}},"required":["url","name"],"title":"MCPServerConfig"},"MCPServerConfigUpdateRequestModel":{"description":"Unified request model for updating MCP Server configuration.","type":"object","properties":{"approval_policy":{"description":"The approval mode to set for the MCP server","anyOf":[{"$ref":"#/components/schemas/MCPApprovalPolicy"},{"type":"null"}]},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}]},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"The maximum time in seconds to wait for each MCP tool call to complete.","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"request_headers":{"description":"The headers to include in requests to the MCP server","anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"type":"object"},{"type":"null"}],"title":"Request Headers"},"disable_compression":{"description":"Whether to disable HTTP compression for this MCP server","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disable Compression"},"secret_token":{"description":"Optional secret token for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"type":"null"}]},"auth_connection":{"description":"Optional auth connection to use for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"}},"title":"MCPServerConfigUpdateRequestModel"},"MCPServerMetadataResponseModel":{"type":"object","properties":{"created_at":{"type":"integer","title":"Created At"},"owner_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner User Id"}},"required":["created_at"],"title":"MCPServerMetadataResponseModel"},"MCPServerRequestModel":{"description":"Request model for creating/updating an MCP Server configuration.","type":"object","properties":{"config":{"description":"Configuration details for the MCP Server.","$ref":"#/components/schemas/MCPServerConfig-Input"}},"required":["config"],"title":"MCPServerRequestModel"},"MCPServerResponseModel":{"description":"Response model representing an MCP Server configuration.","type":"object","properties":{"id":{"type":"string","title":"Id"},"config":{"$ref":"#/components/schemas/MCPServerConfig-Output"},"access_info":{"description":"The access information of the MCP Server","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"dependent_agents":{"description":"List of agents that depend on this MCP Server.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Dependent Agents"},"metadata":{"description":"The metadata of the MCP Server","$ref":"#/components/schemas/MCPServerMetadataResponseModel"}},"required":["id","config","metadata"],"title":"MCPServerResponseModel"},"MCPServerTransport":{"description":"Supported MCP server transport types.","type":"string","default":"SSE","enum":["SSE","STREAMABLE_HTTP"],"title":"MCPServerTransport"},"MCPServersResponseModel":{"description":"Response model for a list of MCP Server configurations.","type":"object","properties":{"mcp_servers":{"type":"array","items":{"$ref":"#/components/schemas/MCPServerResponseModel"},"title":"Mcp Servers"}},"required":["mcp_servers"],"title":"MCPServersResponseModel"},"MCPToolAddApprovalRequestModel":{"description":"Request model for adding approval for a single MCP tool.","type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"tool_description":{"description":"The description of the MCP tool","type":"string","title":"Tool Description"},"input_schema":{"description":"The input schema of the MCP tool (the schema defined on the MCP server before ElevenLabs does any extra processing)","type":"object","additionalProperties":true,"title":"Input Schema"},"approval_policy":{"description":"The tool-level approval policy","default":"requires_approval","$ref":"#/components/schemas/MCPToolApprovalPolicy"}},"required":["tool_name","tool_description"],"title":"MCPToolAddApprovalRequestModel"},"MCPToolApprovalHash":{"description":"Model for storing tool approval hashes for per-tool approval.","type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"tool_hash":{"description":"SHA256 hash of the tool's parameters and description","type":"string","title":"Tool Hash"},"approval_policy":{"description":"The approval policy for this tool","default":"requires_approval","$ref":"#/components/schemas/MCPToolApprovalPolicy"}},"required":["tool_name","tool_hash"],"title":"MCPToolApprovalHash"},"MCPToolApprovalPolicy":{"description":"Defines the tool-level approval policy.","type":"string","default":"requires_approval","enum":["auto_approved","requires_approval"],"title":"MCPToolApprovalPolicy"},"MCPToolConfig-Input":{"description":"An MCP tool configuration that can be used to call MCP servers","type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"integration_type":{"description":"The type of MCP tool","$ref":"#/components/schemas/IntegrationType"},"parameters":{"description":"Schema for any parameters the LLM needs to provide to the MCP tool.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"approval_policy":{"description":"The approval policy for the MCP tool","default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"mcp_tool_name":{"description":"The name of the MCP tool to call","type":"string","title":"Mcp Tool Name"},"mcp_tool_description":{"description":"The description of the MCP tool to call","type":"string","title":"Mcp Tool Description"},"mcp_server_id":{"description":"The id of the MCP server to call","type":"string","title":"Mcp Server Id"},"mcp_server_name":{"description":"The name of the MCP server to call","type":"string","title":"Mcp Server Name"},"mcp_input_schema":{"description":"Original inputSchema dict for consistent hashing","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mcp Input Schema"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"input_overrides":{"description":"Input parameter overrides for this tool","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"}},"required":["name","description","integration_type","mcp_tool_name","mcp_tool_description","mcp_server_id","mcp_server_name"],"title":"MCPToolConfig","x-fern-ignore":true},"MCPToolConfig-Output":{"description":"An MCP tool configuration that can be used to call MCP servers","type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"integration_type":{"description":"The type of MCP tool","$ref":"#/components/schemas/IntegrationType"},"parameters":{"description":"Schema for any parameters the LLM needs to provide to the MCP tool.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"approval_policy":{"description":"The approval policy for the MCP tool","default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"mcp_tool_name":{"description":"The name of the MCP tool to call","type":"string","title":"Mcp Tool Name"},"mcp_tool_description":{"description":"The description of the MCP tool to call","type":"string","title":"Mcp Tool Description"},"mcp_server_id":{"description":"The id of the MCP server to call","type":"string","title":"Mcp Server Id"},"mcp_server_name":{"description":"The name of the MCP server to call","type":"string","title":"Mcp Server Name"},"mcp_input_schema":{"description":"Original inputSchema dict for consistent hashing","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mcp Input Schema"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"input_overrides":{"description":"Input parameter overrides for this tool","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"}},"required":["name","description","integration_type","mcp_tool_name","mcp_tool_description","mcp_server_id","mcp_server_name"],"title":"MCPToolConfig","x-fern-ignore":true},"MCPToolConfigOverride-Input":{"type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool (seconds).","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["tool_name"],"title":"MCPToolConfigOverride"},"MCPToolConfigOverride-Output":{"type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool (seconds).","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Output"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["tool_name"],"title":"MCPToolConfigOverride"},"MCPToolConfigOverrideCreateRequestModel":{"type":"object","properties":{"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool.","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","anyOf":[{"items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"type":"array"},{"type":"null"}],"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"},"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"}},"required":["tool_name"],"title":"MCPToolConfigOverrideCreateRequestModel"},"MCPToolConfigOverrideUpdateRequestModel":{"type":"object","properties":{"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool.","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","anyOf":[{"items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"type":"array"},{"type":"null"}],"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"title":"MCPToolConfigOverrideUpdateRequestModel"},"MTLSAuthResponse":{"description":"Response model for mTLS auth connections.","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"mtls","const":"mtls","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","id"],"title":"MTLSAuthResponse"},"ManualSource":{"type":"object","properties":{"type":{"type":"string","default":"manual","const":"manual","title":"Type"},"created_by_user_id":{"type":"string","title":"Created By User Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"required":["created_by_user_id"],"title":"ManualSource"},"ManualVerificationFileResponseModel":{"type":"object","properties":{"file_id":{"description":"The ID of the file.","type":"string","title":"File Id"},"file_name":{"description":"The name of the file.","type":"string","title":"File Name"},"mime_type":{"description":"The MIME type of the file.","type":"string","title":"Mime Type"},"size_bytes":{"description":"The size of the file in bytes.","type":"integer","title":"Size Bytes"},"upload_date_unix":{"description":"The date of the file in Unix time.","type":"integer","title":"Upload Date Unix"}},"example":{"file_id":"CwhRBWXzGAHq8TQ4Fs18","file_name":"file.mp3","mime_type":"audio/mpeg","size_bytes":1000000,"upload_date_unix":1714204800},"required":["file_id","file_name","mime_type","size_bytes","upload_date_unix"],"title":"ManualVerificationFileResponseModel","x-fern-type-name":"ManualVerificationFileResponse"},"ManualVerificationResponseModel":{"type":"object","properties":{"extra_text":{"description":"The extra text of the manual verification.","type":"string","title":"Extra Text"},"request_time_unix":{"description":"The date of the manual verification in Unix time.","type":"integer","title":"Request Time Unix"},"files":{"description":"The files of the manual verification.","type":"array","items":{"$ref":"#/components/schemas/ManualVerificationFileResponseModel"},"title":"Files"}},"example":{"extra_text":"Please verify the voice is that of a female.","files":[{"file_id":"CwhRBWXzGAHq8TQ4Fs18","file_name":"file.mp3","mime_type":"audio/mpeg","size_bytes":1000000,"upload_date_unix":1714204800}],"request_time_unix":1714204800},"required":["extra_text","request_time_unix","files"],"title":"ManualVerificationResponseModel","x-fern-type-name":"ManualVerificationResponse"},"MatchAnythingParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"anything","title":"Type"}},"required":["type"],"title":"MatchAnythingParameterEvaluationStrategy"},"MediaCodec":{"type":"string","enum":["G722/8000","PCMU/8000","PCMA/8000"],"title":"MediaCodec"},"MediaId":{"type":"string","pattern":"^prodmedia_[a-z0-9]{26}$"},"MemoryEntrySearchResult":{"type":"object","properties":{"entry_id":{"type":"string","title":"Entry Id"},"version":{"type":"integer","title":"Version"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"source":{"anyOf":[{"$ref":"#/components/schemas/ConversationSource"},{"$ref":"#/components/schemas/ManualSource"},{"type":"null"}],"title":"Source"}},"required":["entry_id","version"],"title":"MemoryEntrySearchResult"},"MergePreviewResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"name":{"description":"The name of the agent","type":"string","title":"Name"},"conversation_config":{"description":"The conversation configuration of the agent","$ref":"#/components/schemas/ConversationalConfigAPIModel-Output"},"metadata":{"description":"The metadata of the agent","$ref":"#/components/schemas/AgentMetadataResponseModel"},"platform_settings":{"description":"The platform settings of the agent","$ref":"#/components/schemas/AgentPlatformSettingsResponseModel"},"phone_numbers":{"description":"The phone numbers of the agent","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"discriminator":{"propertyName":"provider","mapping":{"exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel","twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel"}}},"title":"Phone Numbers"},"whatsapp_accounts":{"description":"WhatsApp accounts assigned to the agent","type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"title":"Whatsapp Accounts"},"workflow":{"description":"The workflow of the agent","$ref":"#/components/schemas/AgentWorkflowResponseModel"},"access_info":{"description":"The access information of the agent for the user","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"tags":{"description":"Agent tags used to categorize the agent","type":"array","items":{"type":"string"},"title":"Tags"},"version_id":{"description":"The ID of the version the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"branch_id":{"description":"The ID of the branch the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"main_branch_id":{"description":"The ID of the main branch for this agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Branch Id"},"overridden_fields":{"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.","type":"array","items":{"type":"string"},"title":"Overridden Fields"},"source_identical_to_target":{"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.","type":"boolean","default":false,"title":"Source Identical To Target"}},"example":{"agent_id":"agent_7101k5zvyjhmfg983brhmhkd98n6","name":"My Agent","workflow":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition","type":"llm"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{"type":"unconditional"},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false,"type":"result"},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true,"type":"result"},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{"type":"unconditional"},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition","type":"llm"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition","type":"llm"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer","type":"dynamic_variable"},{"prompt":"Phone condition","type":"llm","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode","type":"dynamic_variable"},"right":{"type":"string_literal","value":"dev"},"type":"eq_operator"}],"type":"or_operator"},"type":"expression"},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":["entry_to_tool_a"],"entry_behavior":"auto","label":"Entry","position":{"x":0,"y":0},"type":"override_agent"},"failure_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Failure","position":{"x":0,"y":0},"type":"override_agent"},"start_node":{"edge_order":["start_to_entry"],"position":{"x":0,"y":0},"type":"start"},"success_conversation":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Success A","position":{"x":0,"y":0},"type":"override_agent"},"success_end":{"edge_order":[],"position":{"x":0,"y":0},"return_when_nested":true,"type":"end"},"success_phone":{"custom_sip_headers":[],"edge_order":[],"position":{"x":0,"y":0},"require_acceptance":false,"transfer_destination":{"phone_number":"+1234567890","type":"phone"},"transfer_type":"conference","type":"phone_number"},"success_transfer":{"agent_id":"success_transfer_agent","delay_ms":0,"edge_order":[],"enable_nesting":false,"enable_transferred_agent_first_message":false,"position":{"x":0,"y":0},"preserve_client_tts_overrides":false,"type":"standalone_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}],"type":"tool"},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"}],"type":"tool"}},"prevent_subagent_loops":false}},"required":["agent_id","name","conversation_config","metadata"],"title":"MergePreviewResponseModel"},"MessageSearchSortBy":{"type":"string","enum":["search_score","created_at"],"title":"MessageSearchSortBy"},"MessagesSearchResponse":{"type":"object","properties":{"meta":{"default":{},"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/MessagesSearchResult"},"title":"Results"},"next_cursor":{"description":"Cursor for the next page of results","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more results available","type":"boolean","title":"Has More"}},"required":["results","has_more"],"title":"MessagesSearchResponse"},"MessagesSearchResult":{"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","type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"transcript_index":{"type":"integer","title":"Transcript Index"},"chunk_text":{"type":"string","title":"Chunk Text"},"chunk_highlights":{"anyOf":[{"items":{"$ref":"#/components/schemas/SearchHighlightSegment"},"type":"array"},{"type":"null"}],"title":"Chunk Highlights"},"score":{"type":"number","title":"Score"},"conversation_start_time_unix_secs":{"type":"integer","title":"Conversation Start Time Unix Secs"}},"required":["conversation_id","agent_id","transcript_index","chunk_text","score","conversation_start_time_unix_secs"],"title":"MessagesSearchResult"},"MetricRecord":{"type":"object","properties":{"elapsed_time":{"type":"number","title":"Elapsed Time"}},"required":["elapsed_time"],"title":"MetricRecord"},"MetricType":{"type":"string","enum":["credits","tts_characters","minutes_used","request_count","ttfb_avg","ttfb_p95","fiat_units_spent","concurrency","concurrency_average"],"title":"MetricType"},"MockNoMatchBehavior":{"type":"string","default":"raise_error","enum":["call_real_tool","raise_error"],"title":"MockNoMatchBehavior"},"MockingStrategy":{"type":"string","default":"none","enum":["all","selected","none"],"title":"MockingStrategy"},"ModelRatesResponseModel":{"type":"object","properties":{"character_cost_multiplier":{"description":"The cost multiplier for characters.","type":"number","title":"Character Cost Multiplier"},"cost_discount_multiplier":{"description":"Discount multiplier applied to cost estimates. Defaults to 1.0 (no discount).","type":"number","default":1,"title":"Cost Discount Multiplier"}},"example":{"character_cost_multiplier":1,"cost_discount_multiplier":1},"required":["character_cost_multiplier"],"title":"ModelRatesResponseModel"},"ModelResponseModel":{"type":"object","properties":{"model_id":{"description":"The unique identifier of the model.","type":"string","title":"Model Id"},"name":{"description":"The name of the model.","type":"string","title":"Name"},"can_be_finetuned":{"description":"Whether the model can be finetuned.","type":"boolean","title":"Can Be Finetuned"},"can_do_text_to_speech":{"description":"Whether the model can do text-to-speech.","type":"boolean","title":"Can Do Text To Speech"},"can_do_voice_conversion":{"description":"Whether the model can do voice conversion.","type":"boolean","title":"Can Do Voice Conversion"},"can_use_style":{"description":"Whether the model can use style.","type":"boolean","title":"Can Use Style"},"can_use_speaker_boost":{"description":"Whether the model can use speaker boost.","type":"boolean","title":"Can Use Speaker Boost"},"serves_pro_voices":{"description":"Whether the model serves pro voices.","type":"boolean","title":"Serves Pro Voices"},"token_cost_factor":{"description":"The cost factor for the model.","type":"number","title":"Token Cost Factor"},"description":{"description":"The description of the model.","type":"string","title":"Description"},"requires_alpha_access":{"description":"Whether the model requires alpha access.","type":"boolean","title":"Requires Alpha Access"},"max_characters_request_free_user":{"description":"The maximum number of characters that can be requested by a free user.","type":"integer","title":"Max Characters Request Free User"},"max_characters_request_subscribed_user":{"description":"The maximum number of characters that can be requested by a subscribed user.","type":"integer","title":"Max Characters Request Subscribed User"},"maximum_text_length_per_request":{"description":"The maximum length of text that can be requested for this model.","type":"integer","title":"Maximum Text Length Per Request"},"languages":{"description":"The languages supported by the model.","type":"array","items":{"$ref":"#/components/schemas/LanguageResponseModel"},"title":"Languages"},"model_rates":{"description":"The rates for the model.","$ref":"#/components/schemas/ModelRatesResponseModel"},"concurrency_group":{"description":"The concurrency group for the model.","type":"string","title":"Concurrency Group"}},"example":{"can_be_finetuned":true,"can_do_text_to_speech":true,"can_do_voice_conversion":true,"can_use_speaker_boost":true,"can_use_style":true,"concurrency_group":"standard_eleven_multilingual_v2","description":"Our state of the art multilingual speech synthesis model, able to generate life-like speech in 29 languages.","languages":[{"language_id":"en","name":"English"}],"max_characters_request_free_user":2500,"max_characters_request_subscribed_user":5000,"maximum_text_length_per_request":1000000,"model_id":"eleven_multilingual_v2","model_rates":{"character_cost_multiplier":1,"cost_discount_multiplier":1},"name":"Eleven Multilingual v2","requires_alpha_access":false,"serves_pro_voices":false,"token_cost_factor":1},"required":["model_id"],"title":"ModelResponseModel","x-fern-type-name":"Model"},"ModelSettingsResponseModel":{"type":"object","properties":{"stability":{"description":"Determines how stable the voice is and the randomness between each generation. Lower values introduce broader emotional range for the voice. Higher values can result in a monotonous voice with limited emotion.","default":0.5,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"}},"example":{"stability":0.5},"title":"ModelSettingsResponseModel"},"ModerationConfig":{"type":"object","properties":{"sexual":{"$ref":"#/components/schemas/ThresholdGuardrail"},"violence":{"$ref":"#/components/schemas/ThresholdGuardrail"},"violence_graphic":{"$ref":"#/components/schemas/ThresholdGuardrail"},"harassment":{"$ref":"#/components/schemas/ThresholdGuardrail"},"harassment_threatening":{"$ref":"#/components/schemas/ThresholdGuardrail"},"hate":{"$ref":"#/components/schemas/ThresholdGuardrail"},"hate_threatening":{"$ref":"#/components/schemas/ThresholdGuardrail"},"self_harm_instructions":{"$ref":"#/components/schemas/ThresholdGuardrail"},"self_harm":{"$ref":"#/components/schemas/ThresholdGuardrail"},"self_harm_intent":{"$ref":"#/components/schemas/ThresholdGuardrail"},"sexual_minors":{"$ref":"#/components/schemas/ThresholdGuardrail"}},"title":"ModerationConfig"},"ModerationGuardrail-Input":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ModerationConfig"}},"title":"ModerationGuardrail"},"ModerationGuardrail-Output":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ModerationConfig"}},"title":"ModerationGuardrail"},"MultichannelSpeechToTextResponseModel":{"description":"Response model for multichannel speech-to-text transcription.","type":"object","properties":{"transcripts":{"description":"List of transcripts, one for each audio channel. Each transcript contains the text and word-level details for its respective channel.","type":"array","items":{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},"title":"Transcripts"},"transcription_id":{"description":"The transcription ID of the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcription Id"},"audio_duration_secs":{"description":"The duration of the audio that was transcribed across all channels in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Audio Duration Secs"}},"example":{"transcripts":[{"language_code":"en","language_probability":0.98,"text":"Hello from channel one.","words":[{"end":0.5,"logprob":-0.124,"speaker_id":"speaker_0","start":0,"text":"Hello","type":"word"},{"end":0.5,"logprob":0,"speaker_id":"speaker_0","start":0.5,"text":" ","type":"spacing"},{"end":0.8,"logprob":-0.089,"speaker_id":"speaker_0","start":0.5,"text":"from","type":"word"}]},{"language_code":"en","language_probability":0.97,"text":"Greetings from channel two.","words":[{"end":0.7,"logprob":-0.156,"speaker_id":"speaker_1","start":0.1,"text":"Greetings","type":"word"},{"end":0.7,"logprob":0,"speaker_id":"speaker_1","start":0.7,"text":" ","type":"spacing"},{"end":1,"logprob":-0.078,"speaker_id":"speaker_1","start":0.7,"text":"from","type":"word"}]}]},"required":["transcripts"],"title":"MultichannelSpeechToTextResponseModel"},"MultipartMusicResponse":{"description":"Multipart response structure with JSON metadata and binary audio","type":"object","properties":{"metadata":{"description":"JSON metadata about the generated audio","$ref":"#/components/schemas/DetailedMusicResponse"},"audio":{"description":"Binary audio data in the requested format","type":"string","format":"binary","title":"Audio"}},"example":{"audio":"[binary audio data]","metadata":{"composition_plan":{"negative_global_styles":["metal","hip-hop","country"],"positive_global_styles":["pop","rock","jazz"],"sections":[{"duration_ms":10000,"lines":["Verse 1 lyrics"],"negative_local_styles":["metal","hip-hop","country"],"positive_local_styles":["pop","rock","jazz"],"section_name":"Verse 1"}]},"song_metadata":{"description":"My Song Description","genres":["pop","rock","jazz"],"is_explicit":false,"languages":["en","fr"],"title":"My Song"},"words_timestamps":[{"end_ms":1000,"start_ms":0,"word":"Verse"},{"end_ms":2000,"start_ms":1000,"word":"1"},{"end_ms":3000,"start_ms":2000,"word":"lyrics"}]}},"required":["metadata","audio"],"title":"MultipartMusicResponse"},"MusicAllowedOutputFormats":{"anyOf":[{"$ref":"#/components/schemas/AllowedOutputFormats"},{"$ref":"#/components/schemas/MusicOnlyOutputFormats"}]},"MusicExploreSongSourceContext":{"type":"object","properties":{"source_type":{"type":"string","default":"music_explore_song","const":"music_explore_song","title":"Source Type"},"music_explore_song_id":{"type":"string","title":"Music Explore Song Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"vocals":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vocals"},"lyrics":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics"}},"required":["music_explore_song_id"],"title":"MusicExploreSongSourceContext"},"MusicFinetuneFailureReason":{"type":"string","enum":["audio_processing_failed","copyright_violation","training_failed"],"title":"MusicFinetuneFailureReason"},"MusicFinetunePageResponseModel":{"type":"object","properties":{"finetunes":{"description":"The finetunes in this page.","type":"array","items":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"},"title":"Finetunes"},"next_cursor":{"description":"Cursor to pass as `cursor` to fetch the next page; `null` when there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether more finetunes are available beyond this page.","type":"boolean","title":"Has More"}},"required":["finetunes","next_cursor","has_more"],"title":"MusicFinetunePageResponseModel"},"MusicFinetuneResponseModel":{"type":"object","properties":{"id":{"description":"Unique identifier of the finetune.","type":"string","title":"Id"},"name":{"description":"Name of the finetune.","type":"string","title":"Name"},"tags":{"description":"Tags associated with the finetune.","type":"array","items":{"type":"string"},"title":"Tags"},"primary_genre":{"description":"Primary musical genre of the finetune.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Genre"},"model_id":{"description":"The base music model the finetune was trained on.","type":"string","title":"Model Id"},"created_at":{"description":"When the finetune was created (UTC).","type":"string","format":"date-time","title":"Created At"},"visibility":{"description":"Who can access this finetune: `private` (only you), `workspace` (members of your workspace), `public` (ElevenLabs-curated, available to everyone).","$ref":"#/components/schemas/FinetuneVisibility"},"created_by":{"description":"Who created the finetune: `self`, `workspace`, or `elevenlabs`.","$ref":"#/components/schemas/FinetuneCreatedBy"},"status":{"description":"Training lifecycle status: pending, in_progress, completed, failed, and blocked.","$ref":"#/components/schemas/MusicFinetuneStatus"},"training_progress":{"description":"Training progress from 0.0 to 1.0.","type":"number","title":"Training Progress"},"failure_reason":{"description":"Reason the finetune failed or was blocked, if applicable.","anyOf":[{"$ref":"#/components/schemas/MusicFinetuneFailureReason"},{"type":"null"}]}},"required":["id","name","tags","model_id","created_at","visibility","created_by","status","training_progress"],"title":"MusicFinetuneResponseModel"},"MusicFinetuneStatus":{"type":"string","enum":["pending","in_progress","completed","failed","blocked"],"title":"MusicFinetuneStatus"},"MusicGenerationMode":{"type":"string","enum":["track","loop","ambience","video_to_music"],"title":"MusicGenerationMode"},"MusicOnlyOutputFormats":{"type":"string","enum":["mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320"]},"MusicOutputFormat":{"anyOf":[{"$ref":"#/components/schemas/MusicAllowedOutputFormats"},{"type":"string","const":"auto"}]},"MusicPrompt":{"description":"Composition plan for the `music_v1` model. Using this field with any other model will result in an error.","type":"object","properties":{"positive_global_styles":{"description":"The styles and musical directions that should be present in the entire song. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Global Styles"},"negative_global_styles":{"description":"The styles and musical directions that should not be present in the entire song. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Global Styles"},"sections":{"description":"The sections of the song.","type":"array","items":{"$ref":"#/components/schemas/SongSection"},"maxItems":30,"title":"Sections"}},"example":{"negative_global_styles":["metal","hip-hop","country"],"positive_global_styles":["pop","rock","jazz"],"sections":[{"duration_ms":10000,"lines":["Verse 1 lyrics"],"negative_local_styles":["metal","hip-hop","country"],"positive_local_styles":["pop","rock","jazz"],"section_name":"Verse 1"}]},"required":["positive_global_styles","negative_global_styles","sections"],"title":"MusicPrompt"},"MusicUploadResponse":{"description":"Response model for music upload endpoint.","type":"object","properties":{"song_id":{"description":"Unique identifier for the uploaded song","type":"string","title":"Song Id"},"composition_plan":{"description":"The composition plan extracted from the uploaded song. Only present if `extract_composition_plan` was provided in the request body.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"},{"type":"null"}],"title":"Composition Plan"},"words_timestamps":{"description":"Word-level timestamps transcribed from the uploaded song. Only present if `with_timestamps` was True in the request body","anyOf":[{"items":{"$ref":"#/components/schemas/WordTimestamp"},"type":"array"},{"type":"null"}],"title":"Words Timestamps"}},"example":{"song_id":"jR4Xz8kL2mNpQ9wVtY1b"},"required":["song_id"],"title":"MusicUploadResponse"},"NonStreamingOutputFormats":{"type":"string","enum":["wav_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000"]},"NumericDistributionAggregate":{"type":"object","properties":{"count":{"type":"integer","default":0,"title":"Count"},"sum":{"type":"number","default":0,"title":"Sum"},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max"}},"title":"NumericDistributionAggregate"},"OAuth2ClientCredsResponse":{"description":"Response model for oauth2 client creds","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_client_credentials","const":"oauth2_client_credentials","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_id":{"type":"string","title":"Client Id"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"default":[],"title":"Scopes"},"extra_params":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Extra Params"},"basic_auth_in_header":{"description":"If True, send client credentials in Authorization header as Basic Auth instead of request body","type":"boolean","default":false,"title":"Basic Auth In Header"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"},"custom_headers":{"description":"Custom headers configured for OAuth2 token requests","type":"object","additionalProperties":{"type":"string"},"title":"Custom Headers"}},"required":["name","provider","client_id","token_url","id"],"title":"OAuth2ClientCredsResponse"},"OAuth2JWTResponse":{"description":"Response model for OAuth2 JWT auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_jwt","const":"oauth2_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"token_url":{"description":"Token endpoint URL for exchanging JWT for access token","type":"string","title":"Token Url"},"scopes":{"description":"OAuth2 scopes to request when exchanging JWT for access token","type":"array","items":{"type":"string"},"title":"Scopes"},"token_response_field":{"description":"Token field to extract from the token endpoint response.","type":"string","default":"access_token","enum":["access_token","id_token"],"title":"Token Response Field"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","issuer","audience","subject","token_url","id"],"title":"OAuth2JWTResponse"},"ObjectJsonSchemaProperty-Input":{"type":"object","properties":{"property_kind":{"type":"string","default":"object","enum":["array","object"],"title":"Property Kind"},"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"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.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"object","const":"object","title":"Type"},"required":{"type":"array","items":{"type":"string"},"title":"Required"},"properties":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Input"}]},"title":"Properties"},"required_constraints":{"anyOf":[{"$ref":"#/components/schemas/RequiredConstraints"},{"type":"null"}]}},"additionalProperties":false,"title":"ObjectJsonSchemaProperty"},"ObjectJsonSchemaProperty-Output":{"type":"object","properties":{"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"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.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"object","const":"object","title":"Type"},"required":{"type":"array","items":{"type":"string"},"title":"Required"},"properties":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Output"}]},"title":"Properties"},"required_constraints":{"anyOf":[{"$ref":"#/components/schemas/RequiredConstraints"},{"type":"null"}]}},"additionalProperties":false,"title":"ObjectJsonSchemaProperty"},"OmitSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"omit","const":"omit","title":"Source"}},"title":"OmitSchemaOverride"},"OpenAIAudioConfig":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/OpenAIAudioInputConfig"},"output":{"$ref":"#/components/schemas/OpenAIAudioOutputConfig"}},"title":"OpenAIAudioConfig"},"OpenAIAudioInputConfig":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAIAudioInputFormat"},"turn_detection":{"anyOf":[{"$ref":"#/components/schemas/OpenAITurnDetection"},{"type":"null"}]}},"title":"OpenAIAudioInputConfig"},"OpenAIAudioInputFormat":{"type":"object","properties":{"type":{"default":"audio/pcm","$ref":"#/components/schemas/AudioFormat"},"rate":{"type":"integer","default":24000,"title":"Rate"}},"title":"OpenAIAudioInputFormat"},"OpenAIAudioOutputConfig":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAIAudioOutputFormat"},"voice":{"type":"string","default":"brian","title":"Voice"}},"title":"OpenAIAudioOutputConfig"},"OpenAIAudioOutputFormat":{"type":"object","properties":{"type":{"default":"audio/pcm","$ref":"#/components/schemas/AudioFormat"}},"title":"OpenAIAudioOutputFormat"},"OpenAIFunctionTool":{"type":"object","properties":{"type":{"type":"string","default":"function","const":"function","title":"Type"},"name":{"type":"string","title":"Name"},"description":{"type":"string","default":"","title":"Description"},"parameters":{"additionalProperties":true,"title":"Parameters","type":"object"}},"required":["name"],"title":"OpenAIFunctionTool"},"OpenAIMCPTool":{"type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"server_label":{"type":"string","title":"Server Label"},"server_url":{"type":"string","title":"Server Url"},"authorization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"allowed_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Tools"},"require_approval":{"type":"string","default":"never","enum":["never","always"],"title":"Require Approval"}},"required":["server_label","server_url"],"title":"OpenAIMCPTool"},"OpenAISessionConfig":{"type":"object","properties":{"type":{"type":"string","default":"realtime","const":"realtime","title":"Type"},"model":{"type":"string","default":"eleven_realtime_fast","title":"Model"},"instructions":{"type":"string","default":"","title":"Instructions"},"modalities":{"type":"array","items":{"type":"string"},"title":"Modalities"},"audio":{"$ref":"#/components/schemas/OpenAIAudioConfig"},"tools":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/OpenAIFunctionTool"},{"$ref":"#/components/schemas/OpenAIMCPTool"}],"discriminator":{"propertyName":"type","mapping":{"function":"#/components/schemas/OpenAIFunctionTool","mcp":"#/components/schemas/OpenAIMCPTool"}}},"title":"Tools"},"tool_choice":{"default":"auto","anyOf":[{"type":"string"},{"$ref":"#/components/schemas/OpenAIToolChoiceFunction"}],"title":"Tool Choice"},"temperature":{"type":"number","default":0.7,"title":"Temperature"},"max_response_output_tokens":{"default":4096,"anyOf":[{"type":"integer","maximum":4096,"minimum":1},{"type":"string","const":"inf"}],"title":"Max Response Output Tokens"},"output_modalities":{"type":"array","items":{"type":"string"},"readOnly":true,"title":"Output Modalities"}},"additionalProperties":false,"required":["output_modalities"],"title":"OpenAISessionConfig"},"OpenAIToolChoiceFunction":{"type":"object","properties":{"type":{"type":"string","default":"function","const":"function","title":"Type"},"function":{"$ref":"#/components/schemas/OpenAIToolChoiceFunctionInner"}},"required":["function"],"title":"OpenAIToolChoiceFunction"},"OpenAIToolChoiceFunctionInner":{"type":"object","properties":{"name":{"type":"string","title":"Name"}},"required":["name"],"title":"OpenAIToolChoiceFunctionInner"},"OpenAITurnDetection":{"type":"object","properties":{"type":{"default":"semantic_vad","$ref":"#/components/schemas/TurnDetectionType"},"eagerness":{"anyOf":[{"$ref":"#/components/schemas/Eagerness"},{"type":"null"}]},"create_response":{"type":"boolean","default":true,"title":"Create Response"},"interrupt_response":{"type":"boolean","default":true,"title":"Interrupt Response"},"threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Threshold"},"prefix_padding_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prefix Padding Ms"},"silence_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Silence Duration Ms"}},"title":"OpenAITurnDetection"},"OpenerConfig":{"type":"object","properties":{"llm":{"description":"Model used to speak a fast opener while the main model generates its full reply. Must be a hosted model (not a bring-your-own LLM type).","$ref":"#/components/schemas/LLM"}},"required":["llm"],"title":"OpenerConfig"},"OptInSmsReminderParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"opt_in_sms_reminder","const":"opt_in_sms_reminder","title":"Smb Tool Type"}},"title":"OptInSmsReminderParams"},"OptOutSmsReminderParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"opt_out_sms_reminder","const":"opt_out_sms_reminder","title":"Smb Tool Type"}},"title":"OptOutSmsReminderParams"},"OrbAvatar":{"type":"object","properties":{"type":{"description":"The type of the avatar","type":"string","default":"orb","const":"orb","title":"Type"},"color_1":{"description":"The first color of the avatar","type":"string","default":"#2792dc","title":"Color 1"},"color_2":{"description":"The second color of the avatar","type":"string","default":"#9ce6e6","title":"Color 2"}},"example":{"color_1":"#2792dc","color_2":"#9ce6e6","type":"orb"},"title":"OrbAvatar"},"OrchestratorToolMockBehaviorConfig":{"description":"Orchestrator-side config: tools are identified by resolved names.","type":"object","properties":{"mocking_strategy":{"description":"Which tools to mock: 'all' mocks every mockable tool, 'selected' mocks only those in mocked_tool_names/mocked_tool_ids, 'none' disables mocking.","default":"none","$ref":"#/components/schemas/MockingStrategy"},"fallback_strategy":{"description":"Behavior when no mock matches a tool call.","default":"raise_error","$ref":"#/components/schemas/MockNoMatchBehavior"},"mocked_tool_names":{"description":"Tool names to mock. Only used when mocking_strategy is 'selected'.","type":"array","items":{"type":"string"},"title":"Mocked Tool Names"}},"title":"OrchestratorToolMockBehaviorConfig"},"OrderDeliverablesResponse":{"type":"object","properties":{"deliverables":{"description":"The list of delivered files for the order. Empty if the order is not yet completed.","type":"array","items":{"$ref":"#/components/schemas/DeliverableInfo"},"title":"Deliverables"}},"example":{"deliverables":[{"content_type":"video/mp4","name":"output_fr.mp4","signed_url":"https://storage.googleapis.com/example-bucket/deliverables/output_fr.mp4?X-Goog-Signature=...","version":1}]},"required":["deliverables"],"title":"OrderDeliverablesResponse"},"OrderId":{"type":"string","pattern":"^prodorder_[a-z0-9]{26}$"},"OrderItemInfo":{"type":"object","properties":{"item_id":{"description":"The ID of the order item.","$ref":"#/components/schemas/ItemId"},"item":{"description":"The item configuration details.","$ref":"#/components/schemas/OrderItemRequest-Output"},"quote":{"description":"The quoted price for this item.","anyOf":[{"$ref":"#/components/schemas/QuoteInfo"},{"type":"null"}]}},"example":{"item":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgatk6h0fwxrtbjade61yqhx","source_language":"en"},"item_id":"proditem_01jgd3qhejfs7rm6swknz2ytjb","quote":{"amount_usd":11}},"required":["item_id","item"],"title":"OrderItemInfo"},"OrderItemKind":{"type":"string","enum":["dub","subtitles","transcription"],"title":"OrderItemKind"},"OrderItemRequest-Input":{"discriminator":{"propertyName":"kind","mapping":{"dub":"#/components/schemas/DubOrderItemRequest","subtitles":"#/components/schemas/SubtitleOrderItemRequest","transcription":"#/components/schemas/TranscriptionOrderItemRequest"}},"oneOf":[{"$ref":"#/components/schemas/DubOrderItemRequest"},{"$ref":"#/components/schemas/SubtitleOrderItemRequest"},{"$ref":"#/components/schemas/TranscriptionOrderItemRequest"}]},"OrderItemRequest-Output":{"discriminator":{"propertyName":"kind","mapping":{"dub":"#/components/schemas/DubOrderItemRequest","subtitles":"#/components/schemas/SubtitleOrderItemRequest","transcription":"#/components/schemas/TranscriptionOrderItemRequest"}},"oneOf":[{"$ref":"#/components/schemas/DubOrderItemRequest"},{"$ref":"#/components/schemas/SubtitleOrderItemRequest"},{"$ref":"#/components/schemas/TranscriptionOrderItemRequest"}]},"OrderMediaResponse":{"type":"object","properties":{"media_id":{"description":"The ID of the media file.","$ref":"#/components/schemas/MediaId"},"name":{"description":"The original filename of the uploaded media.","type":"string","title":"Name"},"content_type":{"description":"The MIME type of the media file (e.g. 'video/mp4').","type":"string","title":"Content Type"},"language":{"description":"The detected or declared language of the media, if available.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"signed_url":{"description":"A time-limited URL to download the media file.","type":"string","title":"Signed Url"}},"example":{"content_type":"video/mp4","language":"en","media_id":"prodmedia_01jgb2zd68f8f9tfvbb968wb8z","name":"example.mp4","signed_url":"https://storage.googleapis.com/example-bucket/media/example.mp4?X-Goog-Signature=..."},"required":["media_id","name","content_type","signed_url"],"title":"OrderMediaResponse"},"OrderRequestState":{"type":"string","enum":["open","submitted","paid","accepted","rejected","done"],"title":"OrderRequestState"},"OrderResponse":{"type":"object","properties":{"order_id":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"},"name":{"description":"The display name of the order.","type":"string","title":"Name"},"state":{"description":"The current state of the order.","$ref":"#/components/schemas/OrderState"},"items":{"description":"The list of items in this order with their quotes.","type":"array","items":{"$ref":"#/components/schemas/OrderItemInfo"},"title":"Items"},"total_amount_usd":{"description":"The total price for all items in USD. Excluded from response until quotes are available.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Amount Usd"},"sandbox":{"description":"Whether this is a sandbox order that auto-progresses without producer intervention.","type":"boolean","default":false,"title":"Sandbox"},"created_at":{"description":"The timestamp when the order was created.","type":"string","format":"date-time","title":"Created At"},"submitted_at":{"description":"The timestamp when the order was submitted, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"paid_at":{"description":"The timestamp when payment was received, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"},"accepted_at":{"description":"The timestamp when the order was accepted for production, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"},"completed_at":{"description":"The timestamp when the order was completed, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"example":{"created_at":"2025-03-15T10:00:00Z","items":[{"item":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgb2zd68f8f9tfvbb968wb8z","source_language":"en"},"item_id":"proditem_01jgd3qhejfs7rm6swknz2ytjb","quote":{"amount_usd":11}}],"name":"Spanish Dubs","order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","sandbox":false,"state":"open","total_amount_usd":11},"required":["order_id","name","state","items","created_at"],"title":"OrderResponse"},"OrderState":{"type":"string","enum":["open","submitted","paid","accepted","rejected","done"],"title":"OrderState"},"OrderSummary":{"type":"object","properties":{"order_id":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"},"name":{"description":"The display name of the order.","type":"string","title":"Name"},"state":{"description":"The current state of the order.","$ref":"#/components/schemas/OrderState"},"total_amount_usd":{"description":"The total price for all items in USD. Excluded from response until quotes are available.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Amount Usd"},"sandbox":{"description":"Whether this is a sandbox order that auto-progresses without producer intervention.","type":"boolean","default":false,"title":"Sandbox"},"submitted_at":{"description":"The timestamp when the order was submitted, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"updated_at":{"description":"The timestamp when the order was last modified, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"example":{"name":"Spanish Dubs","order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","sandbox":false,"state":"submitted","submitted_at":"2025-03-15T10:30:00Z","total_amount_usd":11,"updated_at":"2025-03-15T10:30:00Z"},"required":["order_id","name","state"],"title":"OrderSummary"},"OutboundCallRecipient":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"whatsapp_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp User Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"title":"OutboundCallRecipient"},"OutboundCallRecipientResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"whatsapp_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp User Id"},"status":{"$ref":"#/components/schemas/BatchCallRecipientStatus"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"updated_at_unix":{"type":"integer","title":"Updated At Unix"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataInternal"},{"type":"null"}]}},"required":["id","status","created_at_unix","updated_at_unix","conversation_id"],"title":"OutboundCallRecipientResponseModel"},"OutboundSIPTrunkConfigRequestModel":{"type":"object","properties":{"address":{"description":"Hostname or IP the SIP INVITE is sent to.","type":"string","title":"Address"},"transport":{"description":"Protocol to use for SIP transport (signalling layer).","default":"auto","$ref":"#/components/schemas/SIPTrunkTransportEnum"},"media_encryption":{"description":"Whether or not to encrypt media (data layer).","default":"allowed","$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"headers":{"description":"SIP X-* headers for INVITE request. These headers are sent as-is and may help identify this call.","type":"object","additionalProperties":{"type":"string"},"title":"Headers"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"},"credentials":{"description":"Optional digest authentication credentials (username/password). If not provided, ACL authentication is assumed.","anyOf":[{"$ref":"#/components/schemas/SIPTrunkCredentialsRequestModel"},{"type":"null"}]},"enabled_codecs":{"description":"Media codecs that should be offered in the SDP for outbound calls. If empty, all supported codecs are offered.","type":"array","items":{"$ref":"#/components/schemas/MediaCodec"},"title":"Enabled Codecs"}},"required":["address"],"title":"OutboundSIPTrunkConfigRequestModel"},"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","x-fern-enum":{"mp3_22050_32":{"description":"Output format, mp3 with 22.05kHz sample rate at 32kbps"},"mp3_44100_32":{"description":"Output format, mp3 with 44.1kHz sample rate at 32kbps"},"mp3_44100_64":{"description":"Output format, mp3 with 44.1kHz sample rate at 64kbps"},"mp3_44100_96":{"description":"Output format, mp3 with 44.1kHz sample rate at 96kbps"},"mp3_44100_128":{"description":"Default output format, mp3 with 44.1kHz sample rate at 128kbps"},"mp3_44100_192":{"description":"Output format, mp3 with 44.1kHz sample rate at 192kbps.\n"},"pcm_16000":{"description":"PCM format (S16LE) with 16kHz sample rate.\n"},"pcm_22050":{"description":"PCM format (S16LE) with 22.05kHz sample rate.\n"},"pcm_24000":{"description":"PCM format (S16LE) with 24kHz sample rate.\n"},"pcm_44100":{"description":"PCM format (S16LE) with 44.1kHz sample rate. Requires you to be subscribed to Independent Publisher tier or above.\n"},"ulaw_8000":{"description":"μ-law format (sometimes written mu-law, often approximated as u-law) with 8kHz sample rate. Note that this format is commonly used for Twilio audio inputs.\n"}}},"PairedLanguagesResponse":{"type":"object","properties":{"kind":{"description":"Indicates this response contains source-to-destination language pairs.","type":"string","default":"pair","const":"pair","title":"Kind"},"language_pairs":{"description":"The list of available source-to-destination language mappings.","type":"array","items":{"$ref":"#/components/schemas/LanguagePairInfo"},"title":"Language Pairs"}},"example":{"kind":"pair","language_pairs":[{"destination_languages":[{"code":"es","label":"Spanish"},{"code":"es-ES","label":"Spanish (Spain)"},{"code":"fr","label":"French"}],"source_language":{"code":"en","label":"English"}},{"destination_languages":[{"code":"en","label":"English"}],"source_language":{"code":"es-ES","label":"Spanish (Spain)"}}]},"required":["language_pairs"],"title":"PairedLanguagesResponse"},"PatchConvAIDashboardSettingsRequest":{"type":"object","properties":{"charts":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DashboardCallSuccessChartModel"},{"$ref":"#/components/schemas/DashboardCriteriaChartModel"},{"$ref":"#/components/schemas/DashboardDataCollectionChartModel"}],"discriminator":{"propertyName":"type","mapping":{"call_success":"#/components/schemas/DashboardCallSuccessChartModel","criteria":"#/components/schemas/DashboardCriteriaChartModel","data_collection":"#/components/schemas/DashboardDataCollectionChartModel"}}},"maxItems":4,"title":"Charts"}},"title":"PatchConvAIDashboardSettingsRequest"},"PatchConvAISettingsRequest":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"},"can_use_mcp_servers":{"description":"Whether the workspace can use MCP servers","type":"boolean","default":false,"title":"Can Use Mcp Servers"},"rag_retention_period_days":{"type":"integer","default":10,"exclusiveMinimum":0,"maximum":30,"title":"Rag Retention Period Days"},"conversation_embedding_retention_days":{"description":"Days to retain conversation embeddings. None means use the system default (30 days).","anyOf":[{"type":"integer","maximum":365,"exclusiveMinimum":0},{"type":"null"}],"title":"Conversation Embedding Retention Days"},"default_livekit_stack":{"default":"standard","$ref":"#/components/schemas/LivekitStackType"}},"title":"PatchConvAISettingsRequest"},"PatchConversationTagRequestModel":{"type":"object","properties":{"title":{"description":"If provided, replaces the tag title. Omit to leave unchanged.","anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"description":"If provided, replaces the tag description. Omit to leave unchanged.","anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"title":"PatchConversationTagRequestModel"},"PatchWorkspaceSecretRequest":{"type":"object","properties":{"type":{"type":"string","const":"update","title":"Type"},"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"required":["type","name","value"],"title":"PatchWorkspaceSecretRequest"},"PatchWorkspaceWebhookResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace webhook patch request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"PatchWorkspaceWebhookResponseModel"},"PdfExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"pdf","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"PdfExportOptions"},"PendingBlocksMetadataModel":{"type":"object","properties":{"target_global_offset_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Global Offset Ms"},"block_ids":{"type":"array","items":{"type":"string"},"title":"Block Ids"}},"required":["target_global_offset_ms","block_ids"],"title":"PendingBlocksMetadataModel"},"PendingCancellationResponseModel":{"type":"object","properties":{"kind":{"type":"string","default":"cancellation","const":"cancellation","title":"Kind"},"timestamp_seconds":{"description":"The timestamp of the cancellation.","type":"integer","title":"Timestamp Seconds"}},"required":["timestamp_seconds"],"title":"PendingCancellationResponseModel"},"PendingClipTask":{"type":"object","properties":{"type":{"type":"string","enum":["preprocessing","speech_import","dubbing","video_to_music","media_generation"],"title":"Type"},"progress":{"type":"number","default":0,"title":"Progress"},"started_at_ms":{"type":"integer","title":"Started At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"metadata":{"type":"object","additionalProperties":true,"title":"Metadata"}},"required":["type"],"title":"PendingClipTask"},"PendingExternalAudiosMetadataModel":{"type":"object","properties":{"target_global_offset_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Global Offset Ms"},"external_audio_ids":{"type":"array","items":{"type":"string"},"title":"External Audio Ids"}},"required":["target_global_offset_ms","external_audio_ids"],"title":"PendingExternalAudiosMetadataModel"},"PendingSubscriptionSwitchResponseModel":{"type":"object","properties":{"kind":{"type":"string","default":"change","const":"change","title":"Kind"},"next_tier":{"description":"The tier to change to.","type":"string","enum":["free","starter","creator","pro","growing_business","scale_2024_08_10","grant_tier_1_2025_07_23","grant_tier_2_2025_07_23","trial","enterprise"],"title":"Next Tier"},"next_billing_period":{"description":"The billing period to change to.","$ref":"#/components/schemas/BillingPeriod"},"timestamp_seconds":{"description":"The timestamp of the change.","type":"integer","title":"Timestamp Seconds"}},"required":["next_tier","next_billing_period","timestamp_seconds"],"title":"PendingSubscriptionSwitchResponseModel"},"PermissionType":{"type":"string","enum":["text_to_speech","speech_to_speech","speech_to_text","models_read","models_write","voices_read","voices_write","speech_history_read","speech_history_write","sound_generation","audio_isolation","voice_generation","dubbing_read","dubbing_write","pronunciation_dictionaries_read","pronunciation_dictionaries_write","user_read","user_write","projects_read","projects_write","audio_native_read","audio_native_write","workspace_read","workspace_write","forced_alignment","convai_read","convai_write","music_generation","image_video_generation","flows","templates","add_voice_from_voice_library","create_instant_voice_clone","create_professional_voice_clone","publish_voice_to_voice_library","share_voice_externally","create_user_api_key","workspace_analytics_full_read","webhooks_write","service_account_write","group_members_manage","workspace_members_read","workspace_members_invite","workspace_members_remove","terms_of_service_accept","audit_log_read","conversation_privacy_manage","copy_resources_cross_workspace","synthid_detector"],"title":"PermissionType"},"PhoneNumberAgentInfo":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"agent_name":{"description":"The name of the agent","type":"string","title":"Agent Name"},"environment":{"description":"Environment to use for resolving environment variables on calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"branch_id":{"description":"Agent branch to use for calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"example":{"agent_id":"F3Pbu5gP6NNKBscdCdwB","agent_name":"My Agent"},"required":["agent_id","agent_name"],"title":"PhoneNumberAgentInfo"},"PhoneNumberDynamicVariableTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"phone_dynamic_variable","const":"phone_dynamic_variable","title":"Type"},"phone_number":{"type":"string","title":"Phone Number"}},"required":["phone_number"],"title":"PhoneNumberDynamicVariableTransferDestination"},"PhoneNumberTransfer":{"type":"object","properties":{"custom_sip_headers":{"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/CustomSIPHeader"},{"$ref":"#/components/schemas/CustomSIPHeaderWithDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/CustomSIPHeaderWithDynamicVariable","static":"#/components/schemas/CustomSIPHeader"}}},"maxItems":20,"title":"Custom Sip Headers"},"transfer_destination":{"discriminator":{"propertyName":"type","mapping":{"phone":"#/components/schemas/PhoneNumberTransferDestination","phone_dynamic_variable":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination","sip_uri":"#/components/schemas/SIPUriTransferDestination","sip_uri_dynamic_variable":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}},"oneOf":[{"$ref":"#/components/schemas/PhoneNumberTransferDestination"},{"$ref":"#/components/schemas/SIPUriTransferDestination"},{"$ref":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination"},{"$ref":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}],"title":"Transfer Destination"},"transfer_type":{"default":"conference","$ref":"#/components/schemas/TransferTypeEnum"},"uui":{"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.","anyOf":[{"$ref":"#/components/schemas/UUITransferConfig"},{"type":"null"}]},"post_dial_digits":{"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.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/PostDialDigitsStatic"},{"$ref":"#/components/schemas/PostDialDigitsDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/PostDialDigitsDynamicVariable","static":"#/components/schemas/PostDialDigitsStatic"}}},{"type":"null"}],"title":"Post Dial Digits"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Phone Number"},"condition":{"type":"string","title":"Condition"}},"required":["transfer_destination","condition"],"title":"PhoneNumberTransfer"},"PhoneNumberTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"phone","const":"phone","title":"Type"},"phone_number":{"type":"string","title":"Phone Number"}},"required":["phone_number"],"title":"PhoneNumberTransferDestination"},"PlatformCategory":{"description":"Buckets that make up the non-LLM ``platform_charge`` of a conversation.","type":"string","enum":["voice","silence","burst","asr","text_message","reception","other"],"title":"PlatformCategory"},"PlatformCategoryUsage":{"description":"Accumulated charge for a single :class:`PlatformCategory`.","type":"object","properties":{"credits":{"type":"integer","default":0,"title":"Credits"},"price":{"type":"number","default":0,"title":"Price"},"quantity":{"type":"number","default":0,"title":"Quantity"}},"title":"PlatformCategoryUsage"},"PlatformUsage":{"description":"Per-category breakdown of ``platform_charge`` (the analogue of ``llm_usage``).","type":"object","properties":{"category_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PlatformCategoryUsage"},"propertyNames":{"$ref":"#/components/schemas/PlatformCategory"},"title":"Category Usage"}},"title":"PlatformUsage"},"PlayDTMFResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"play_dtmf_error","const":"play_dtmf_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"error":{"type":"string","title":"Error"},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details"}},"required":["error"],"title":"PlayDTMFResultErrorModel"},"PlayDTMFResultSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"play_dtmf_success","const":"play_dtmf_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"dtmf_tones":{"type":"string","title":"Dtmf Tones"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"required":["dtmf_tones"],"title":"PlayDTMFResultSuccessModel"},"PlayDTMFToolConfig":{"description":"Allows the agent to play DTMF tones during a phone call.\n\nThis tool can be used to interact with automated phone systems, such as\nnavigating phone menus, entering extensions, or inputting numeric codes.","type":"object","properties":{"system_tool_type":{"type":"string","default":"play_keypad_touch_tone","const":"play_keypad_touch_tone","title":"System Tool Type"},"use_out_of_band_dtmf":{"description":"Send DTMF tones as out-of-band RTP events (RFC 4733) instead of in-band audio. Only effective for SIP trunk imported numbers.","type":"boolean","default":true,"title":"Use Out Of Band Dtmf"},"suppress_turn_after_dtmf":{"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.","type":"boolean","default":false,"title":"Suppress Turn After Dtmf"}},"title":"PlayDTMFToolConfig"},"PodcastBulletinMode":{"type":"object","properties":{"type":{"description":"The type of podcast to create.","type":"string","const":"bulletin","title":"Type"},"bulletin":{"description":"The voice settings for the bulletin.","$ref":"#/components/schemas/PodcastBulletinModeData"}},"example":{"bulletin":{"host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"type":"bulletin"},"required":["type","bulletin"],"title":"PodcastBulletinMode"},"PodcastBulletinModeData":{"type":"object","properties":{"host_voice_id":{"description":"The ID of the host voice.","type":"string","title":"Host Voice Id"}},"example":{"host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"required":["host_voice_id"],"title":"PodcastBulletinModeData"},"PodcastConversationMode":{"type":"object","properties":{"type":{"description":"The type of podcast to create.","type":"string","const":"conversation","title":"Type"},"conversation":{"description":"The voice settings for the conversation.","$ref":"#/components/schemas/PodcastConversationModeData"}},"example":{"conversation":{"guest_voice_id":"aw1NgEzBg83R7vgmiJt7","host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"type":"conversation"},"required":["type","conversation"],"title":"PodcastConversationMode"},"PodcastConversationModeData":{"type":"object","properties":{"host_voice_id":{"description":"The ID of the host voice.","type":"string","title":"Host Voice Id"},"guest_voice_id":{"description":"The ID of the guest voice.","type":"string","title":"Guest Voice Id"}},"example":{"guest_voice_id":"aw1NgEzBg83R7vgmiJt7","host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"required":["host_voice_id","guest_voice_id"],"title":"PodcastConversationModeData"},"PodcastProjectResponseModel":{"type":"object","properties":{"project":{"description":"The project associated with the created podcast.","$ref":"#/components/schemas/ProjectResponseModel"}},"required":["project"],"title":"PodcastProjectResponseModel"},"PodcastTextSource":{"type":"object","properties":{"type":{"description":"The type of source to create.","type":"string","const":"text","title":"Type"},"text":{"description":"The text to create the podcast from.","type":"string","title":"Text"}},"example":{"text":"This is a test podcast.","type":"text"},"required":["type","text"],"title":"PodcastTextSource"},"PodcastURLSource":{"type":"object","properties":{"type":{"description":"The type of source to create.","type":"string","const":"url","title":"Type"},"url":{"description":"The URL to create the podcast from.","type":"string","title":"Url"}},"example":{"type":"url","url":"https://www.example.com"},"required":["type","url"],"title":"PodcastURLSource"},"Position-Input":{"type":"object","properties":{"x":{"type":"number","default":0,"title":"X"},"y":{"type":"number","default":0,"title":"Y"}},"title":"Position"},"Position-Output":{"type":"object","properties":{"x":{"type":"number","default":0,"title":"X"},"y":{"type":"number","default":0,"title":"Y"}},"required":["x","y"],"title":"Position"},"PostAgentAvatarResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"}},"required":["agent_id"],"title":"PostAgentAvatarResponseModel"},"PostDialDigitsDynamicVariable":{"type":"object","properties":{"type":{"type":"string","default":"dynamic","const":"dynamic","title":"Type"},"value":{"description":"The dynamic variable name to resolve","type":"string","minLength":1,"title":"Value"}},"required":["value"],"title":"PostDialDigitsDynamicVariable"},"PostDialDigitsStatic":{"type":"object","properties":{"type":{"type":"string","default":"static","const":"static","title":"Type"},"value":{"description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension)","type":"string","minLength":1,"pattern":"^[0-9*#wW]*$","title":"Value"}},"required":["value"],"title":"PostDialDigitsStatic"},"PostWorkspaceSecretRequest":{"type":"object","properties":{"type":{"type":"string","const":"new","title":"Type"},"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"required":["type","name","value"],"title":"PostWorkspaceSecretRequest"},"PostWorkspaceSecretResponseModel":{"type":"object","properties":{"type":{"type":"string","const":"stored","title":"Type"},"secret_id":{"type":"string","title":"Secret Id"},"name":{"type":"string","title":"Name"}},"required":["type","secret_id","name"],"title":"PostWorkspaceSecretResponseModel"},"PreToolSpeechMode":{"type":"string","default":"auto","enum":["auto","force","off"],"title":"PreToolSpeechMode"},"PreviewAudioDBModel":{"type":"object","properties":{"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"audio_url":{"type":"string","title":"Audio Url"},"hls_manifest_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hls Manifest Url"},"dash_manifest_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dash Manifest Url"},"is_auto_generated":{"default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Auto Generated"},"generated_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Generated At Unix"}},"required":["audio_url"],"title":"PreviewAudioDBModel"},"Price":{"description":"Currency/amount pair.","type":"object","properties":{"amount":{"type":"string","title":"Amount"},"currency":{"$ref":"#/components/schemas/Currency"}},"required":["amount","currency"],"title":"Price"},"PrivacyConfig-Input":{"type":"object","properties":{"record_voice":{"description":"Whether to record the conversation","type":"boolean","default":true,"title":"Record Voice"},"retention_days":{"description":"The number of days to retain the conversation. -1 indicates there is no retention limit","type":"integer","default":-1,"title":"Retention Days"},"delete_transcript_and_pii":{"description":"Whether to delete the transcript and PII","type":"boolean","default":false,"title":"Delete Transcript And Pii"},"delete_audio":{"description":"Whether to delete the audio","type":"boolean","default":false,"title":"Delete Audio"},"apply_to_existing_conversations":{"description":"Whether to apply the privacy settings to existing conversations","type":"boolean","default":false,"title":"Apply To Existing Conversations"},"zero_retention_mode":{"description":"Whether to enable zero retention mode - no PII data is stored","type":"boolean","default":false,"title":"Zero Retention Mode"},"conversation_history_redaction":{"description":"Config for PII redaction in the conversation history","$ref":"#/components/schemas/ConversationHistoryRedactionConfig"}},"example":{"apply_to_existing_conversations":false,"delete_audio":false,"delete_transcript_and_pii":false,"record_voice":true,"retention_days":-1,"zero_retention_mode":false},"title":"PrivacyConfig"},"PrivacyConfig-Output":{"type":"object","properties":{"record_voice":{"description":"Whether to record the conversation","type":"boolean","default":true,"title":"Record Voice"},"retention_days":{"description":"The number of days to retain the conversation. -1 indicates there is no retention limit","type":"integer","default":-1,"title":"Retention Days"},"delete_transcript_and_pii":{"description":"Whether to delete the transcript and PII","type":"boolean","default":false,"title":"Delete Transcript And Pii"},"delete_audio":{"description":"Whether to delete the audio","type":"boolean","default":false,"title":"Delete Audio"},"apply_to_existing_conversations":{"description":"Whether to apply the privacy settings to existing conversations","type":"boolean","default":false,"title":"Apply To Existing Conversations"},"zero_retention_mode":{"description":"Whether to enable zero retention mode - no PII data is stored","type":"boolean","default":false,"title":"Zero Retention Mode"},"conversation_history_redaction":{"description":"Config for PII redaction in the conversation history","$ref":"#/components/schemas/ConversationHistoryRedactionConfig"}},"example":{"apply_to_existing_conversations":false,"delete_audio":false,"delete_transcript_and_pii":false,"record_voice":true,"retention_days":-1,"zero_retention_mode":false},"title":"PrivacyConfig"},"PrivateKeyJWTResponse":{"description":"Response model for Private Key JWT auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"private_key_jwt","const":"private_key_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","issuer","audience","subject","id"],"title":"PrivateKeyJWTResponse"},"ProcedureAtVersion-Input":{"type":"object","properties":{"procedure_id":{"description":"Procedure ID","type":"string","title":"Procedure Id"},"name":{"description":"Procedure name","type":"string","maxLength":200,"title":"Name"},"type":{"default":"free_form","$ref":"#/components/schemas/ProcedureType"},"content":{"description":"Procedure content","maxLength":50000,"title":"Content","type":"string"},"guardrails":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Guardrails"},"agent_id":{"description":"Agent ID of the procedure","type":"string","title":"Agent Id"},"version_id":{"description":"Version ID of a version of the procedure. None for a procedure never versioned.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["procedure_id","name","content","agent_id"],"title":"ProcedureAtVersion"},"ProcedureAtVersion-Output":{"type":"object","properties":{"procedure_id":{"description":"Procedure ID","type":"string","title":"Procedure Id"},"name":{"description":"Procedure name","type":"string","maxLength":200,"title":"Name"},"type":{"default":"free_form","$ref":"#/components/schemas/ProcedureType"},"content":{"description":"Procedure content","maxLength":50000,"title":"Content","type":"string"},"guardrails":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Guardrails"},"agent_id":{"description":"Agent ID of the procedure","type":"string","title":"Agent Id"},"version_id":{"description":"Version ID of a version of the procedure. None for a procedure never versioned.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["procedure_id","name","content","agent_id"],"title":"ProcedureAtVersion"},"ProcedureRefResponseModel":{"type":"object","properties":{"procedure_id":{"description":"Procedure ID","type":"string","title":"Procedure Id"},"version_id":{"description":"Version ID of a version of the procedure. None for a procedure never versioned.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"name":{"description":"Procedure name","type":"string","default":"","title":"Name"},"type":{"description":"Procedure type","default":"free_form","$ref":"#/components/schemas/ProcedureType"}},"example":{"name":"Customer Support Procedure","procedure_id":"agtprc_6qbpwdq8n01bxhk44bgjy6f10ck3","type":"free_form","version_id":"agtprcv_7rbqxer9o12cyxi55ckw6sgz1dl4"},"required":["procedure_id"],"title":"ProcedureRefResponseModel"},"ProcedureType":{"type":"string","default":"free_form","enum":["free_form","deterministic"],"title":"ProcedureType"},"ProjectCreationMetaResponseModel":{"type":"object","properties":{"creation_progress":{"description":"The progress of the project creation.","type":"number","title":"Creation Progress"},"status":{"description":"The status of the project creation action.","type":"string","enum":["pending","creating","finished","failed"],"title":"Status"},"type":{"description":"The type of the project creation action.","type":"string","enum":["blank","generate_podcast","auto_assign_voices","dub_video","import_speech"],"title":"Type"}},"example":{"creation_progress":0.5,"status":"pending","type":"blank"},"required":["creation_progress","status","type"],"title":"ProjectCreationMetaResponseModel"},"ProjectExtendedResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"name":{"description":"The name of the project.","type":"string","title":"Name"},"create_date_unix":{"description":"The creation date of the project.","type":"integer","title":"Create Date Unix"},"created_by_user_id":{"description":"The user ID who created the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"},"default_title_voice_ref_id":{"description":"The default title project voice reference ID.","type":"string","title":"Default Title Voice Ref Id"},"default_paragraph_voice_ref_id":{"description":"The default paragraph project voice reference ID.","type":"string","title":"Default Paragraph Voice Ref Id"},"default_model_id":{"description":"The default model ID.","type":"string","title":"Default Model Id"},"last_conversion_date_unix":{"description":"The last conversion date of the project.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"can_be_downloaded":{"description":"Whether the project can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"title":{"description":"The title of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"author":{"description":"The author of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"description":{"description":"The description of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"description":"List of genres of the project.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Genres"},"cover_image_url":{"description":"The cover image URL of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"target_audience":{"description":"The target audience of the project.","anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"title":"Target Audience"},"language":{"description":"Two-letter language code (ISO 639-1) of the language of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"content_type":{"description":"The content type of the project, e.g. 'Novel' or 'Short Story'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"original_publication_date":{"description":"The original publication date of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Publication Date"},"mature_content":{"description":"Whether the project contains mature content.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mature Content"},"isbn_number":{"description":"The ISBN number of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Isbn Number"},"volume_normalization":{"description":"Whether the project uses volume normalization.","type":"boolean","title":"Volume Normalization"},"state":{"description":"The state of the project.","type":"string","enum":["creating","default","converting","in_queue"],"title":"State","x-fern-type-name":"ProjectState"},"access_level":{"description":"The access level of the project.","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"},"fiction":{"description":"Whether the project is fiction.","anyOf":[{"type":"string","enum":["fiction","non-fiction"]},{"type":"null"}],"title":"Fiction"},"quality_check_on":{"description":"Whether quality check is enabled for this project.","type":"boolean","deprecated":true,"title":"Quality Check On"},"quality_check_on_when_bulk_convert":{"description":"Whether quality check is enabled on the project when bulk converting.","type":"boolean","deprecated":true,"title":"Quality Check On When Bulk Convert"},"creation_meta":{"description":"The creation meta of the project.","anyOf":[{"$ref":"#/components/schemas/ProjectCreationMetaResponseModel"},{"type":"null"}]},"source_type":{"description":"The source type of the project.","anyOf":[{"type":"string","enum":["blank","book","article","genfm","video","screenplay"]},{"type":"null"}],"title":"Source Type"},"chapters_enabled":{"description":"Whether chapters are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chapters Enabled"},"captions_enabled":{"description":"Whether captions are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Captions Enabled"},"caption_style":{"description":"Global styling to be applied to all captions","anyOf":[{"$ref":"#/components/schemas/CaptionStyleModel"},{"type":"null"}]},"caption_style_template_overrides":{"description":"Styling changes that have been made to the provided templates","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/CaptionStyleModel"},"type":"object"},{"type":"null"}],"title":"Caption Style Template Overrides"},"public_share_id":{"description":"The public share ID of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Share Id"},"aspect_ratio":{"description":"The aspect ratio of the project.","anyOf":[{"type":"string","enum":["16:9","9:16","4:5","1:1"]},{"type":"null"}],"title":"Aspect Ratio"},"agent_settings":{"description":"Agent-related settings for the project","anyOf":[{"$ref":"#/components/schemas/StudioAgentSettingsModel"},{"type":"null"}]},"quality_preset":{"description":"The quality preset level of the project.","$ref":"#/components/schemas/QualityPresetType"},"chapters":{"description":"List of chapters of the project and their metadata.","type":"array","items":{"$ref":"#/components/schemas/ChapterResponseModel"},"title":"Chapters"},"pronunciation_dictionary_versions":{"description":"List of pronunciation dictionary versions of the project and their metadata.","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionResponseModel"},"title":"Pronunciation Dictionary Versions"},"pronunciation_dictionary_locators":{"description":"List of pronunciation dictionary locators.","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryLocatorResponseModel"},"title":"Pronunciation Dictionary Locators"},"apply_text_normalization":{"description":"Whether text normalization is applied to the project.","type":"string","enum":["auto","on","off","apply_english"],"title":"Apply Text Normalization"},"experimental":{"description":"Experimental features for the project.","type":"object","additionalProperties":true,"title":"Experimental"},"assets":{"description":"List of uploaded assets e.g. videos, audios.","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ProjectVideoResponseModel"},{"$ref":"#/components/schemas/ProjectExternalAudioResponseModel"},{"$ref":"#/components/schemas/ProjectImageResponseModel"}]},"title":"Assets"},"voices":{"description":"List of configured project voices.","type":"array","items":{"$ref":"#/components/schemas/ProjectVoiceResponseModel"},"title":"Voices"},"base_voices":{"description":"List of voices used by the project.","anyOf":[{"items":{"$ref":"#/components/schemas/VoiceResponseModel"},"type":"array"},{"type":"null"}],"title":"Base Voices"},"publishing_read":{"description":"The ElevenReader data if the book was published.","anyOf":[{"$ref":"#/components/schemas/DirectPublishingReadResponseModel"},{"type":"null"}]},"default_title_voice_id":{"description":"The default title voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The default paragraph voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Paragraph Voice Id"}},"example":{"access_level":"viewer","apply_text_normalization":"auto","assets":[],"author":"John Doe","base_voices":[],"can_be_downloaded":true,"chapters":[{"can_be_downloaded":true,"chapter_id":"aw1NgEzBg83R7vgmiJt6","conversion_progress":0.5,"last_conversion_date_unix":1714204800,"last_conversion_error":"Error message","name":"Chapter 1","state":"converting","statistics":{"characters_converted":500,"characters_unconverted":1000,"credits_needed_to_convert":1000,"paragraphs_converted":20,"paragraphs_unconverted":10,"voice_statistics":[{"characters_converted":300,"characters_unconverted":600,"project_voice_ref_id":"voice123","voice_id":"voice123"},{"characters_converted":200,"characters_unconverted":400,"project_voice_ref_id":"voice456","voice_id":"voice456"}]}}],"content_type":"Novel","cover_image_url":"https://example.com/cover.jpg","create_date_unix":1714204800,"created_by_user_id":"Vbtgl3bRdj6lk79rYAgx","creation_meta":{"creation_progress":0.5,"status":"pending","type":"blank"},"default_model_id":"eleven_multilingual_v2","default_paragraph_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_paragraph_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","description":"This is a description of my project.","experimental":{},"fiction":"fiction","genres":["Novel","Short Story"],"isbn_number":"978-90-274-3964-2","language":"en","last_conversion_date_unix":1714204800,"mature_content":false,"name":"My Project","original_publication_date":"2025-01-01","project_id":"aw1NgEzBg83R7vgmiJt6","pronunciation_dictionary_locators":[],"pronunciation_dictionary_versions":[],"public_share_id":"abc123def456789","quality_check_on":false,"quality_check_on_when_bulk_convert":false,"quality_preset":"standard","state":"default","target_audience":"young adult","title":"My Project","voices":[],"volume_normalization":true},"required":["project_id","name","create_date_unix","created_by_user_id","default_title_voice_ref_id","default_paragraph_voice_ref_id","default_model_id","can_be_downloaded","volume_normalization","state","access_level","quality_check_on","quality_check_on_when_bulk_convert","quality_preset","chapters","pronunciation_dictionary_versions","pronunciation_dictionary_locators","apply_text_normalization","assets","voices","default_title_voice_id","default_paragraph_voice_id"],"title":"ProjectExtendedResponseModel","x-fern-type-name":"ProjectExtendedResponse"},"ProjectExternalAudioResponseModel":{"type":"object","properties":{"external_audio_id":{"type":"string","title":"External Audio Id"},"filename":{"type":"string","title":"Filename"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"},"offset_ms":{"type":"integer","title":"Offset Ms"},"duration_ms":{"type":"integer","title":"Duration Ms"},"start_time_ms":{"type":"integer","title":"Start Time Ms"},"end_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time Ms"},"order":{"type":"string","title":"Order"},"track_id":{"type":"string","title":"Track Id"},"created_at_ms":{"type":"integer","title":"Created At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"volume_gain_db":{"type":"number","default":0,"title":"Volume Gain Db"},"muted":{"type":"boolean","default":false,"title":"Muted"},"fade_in_ms":{"type":"integer","default":0,"title":"Fade In Ms"},"fade_out_ms":{"type":"integer","default":0,"title":"Fade Out Ms"},"source_external_audio_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source External Audio Id"},"source_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Asset Id"},"source_platform_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Platform Asset Id"},"pending_blocks_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingBlocksMetadataModel"},{"type":"null"}]},"pending_external_audios_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingExternalAudiosMetadataModel"},{"type":"null"}]},"speech_imported":{"type":"boolean","default":false,"title":"Speech Imported"},"pending_task":{"anyOf":[{"$ref":"#/components/schemas/PendingClipTask"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"current_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Snapshot Id"},"source_context":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/SongSourceContext"},{"$ref":"#/components/schemas/MusicExploreSongSourceContext"},{"$ref":"#/components/schemas/SfxSourceContext"}],"discriminator":{"propertyName":"source_type","mapping":{"music_explore_song":"#/components/schemas/MusicExploreSongSourceContext","sfx":"#/components/schemas/SfxSourceContext","song":"#/components/schemas/SongSourceContext"}}},{"type":"null"}],"title":"Source Context"},"analysis":{"anyOf":[{"$ref":"#/components/schemas/AudioAnalysis"},{"type":"null"}]},"transcription":{"anyOf":[{"$ref":"#/components/schemas/AssetTranscription"},{"type":"null"}]},"type":{"type":"string","default":"audio","const":"audio","title":"Type"},"import_speech_progress":{"anyOf":[{"type":"number"},{"type":"null"}],"readOnly":true,"title":"Import Speech Progress"}},"required":["external_audio_id","filename","signed_url","offset_ms","duration_ms","start_time_ms","end_time_ms","order","track_id","created_at_ms","updated_at_ms","import_speech_progress"],"title":"ProjectExternalAudioResponseModel"},"ProjectImageResponseModel":{"type":"object","properties":{"image_id":{"type":"string","title":"Image Id"},"filename":{"type":"string","title":"Filename"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"},"thumbnail_signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Signed Url"},"type":{"type":"string","default":"image","const":"image","title":"Type"},"source":{"type":"string","default":"upload","const":"upload","title":"Source"},"file_size_bytes":{"type":"integer","title":"File Size Bytes"},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"track_id":{"type":"string","default":"v0","title":"Track Id"},"offset_ms":{"type":"integer","title":"Offset Ms"},"duration_ms":{"type":"integer","title":"Duration Ms"},"order":{"type":"string","title":"Order"},"canvas_placement":{"$ref":"#/components/schemas/CanvasPlacement"},"animation":{"default":{"enter_effect":"none","enter_duration_ms":0,"exit_effect":"none","exit_duration_ms":0},"$ref":"#/components/schemas/ClipAnimation"},"opacity":{"type":"number","default":1,"maximum":1,"minimum":0,"title":"Opacity"},"created_at_ms":{"type":"integer","title":"Created At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"current_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Snapshot Id"},"source_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Asset Id"},"source_platform_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Platform Asset Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"pending_task":{"anyOf":[{"$ref":"#/components/schemas/PendingClipTask"},{"type":"null"}]},"analysis":{"anyOf":[{"$ref":"#/components/schemas/ImageAnalysis"},{"type":"null"}]}},"required":["image_id","filename","file_size_bytes","width","height","offset_ms","duration_ms","order","canvas_placement","created_at_ms","updated_at_ms"],"title":"ProjectImageResponseModel"},"ProjectMutedTracksResponseModel":{"type":"object","properties":{"chapter_ids":{"description":"List of chapter IDs that have muted tracks.","type":"array","items":{"type":"string"},"title":"Chapter Ids"}},"example":{"chapter_ids":["aw1NgEzBg83R7vgmiJt6"]},"required":["chapter_ids"],"title":"ProjectMutedTracksResponseModel"},"ProjectResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"name":{"description":"The name of the project.","type":"string","title":"Name"},"create_date_unix":{"description":"The creation date of the project.","type":"integer","title":"Create Date Unix"},"created_by_user_id":{"description":"The user ID who created the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"},"default_title_voice_ref_id":{"description":"The default title project voice reference ID.","type":"string","title":"Default Title Voice Ref Id"},"default_paragraph_voice_ref_id":{"description":"The default paragraph project voice reference ID.","type":"string","title":"Default Paragraph Voice Ref Id"},"default_model_id":{"description":"The default model ID.","type":"string","title":"Default Model Id"},"last_conversion_date_unix":{"description":"The last conversion date of the project.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"can_be_downloaded":{"description":"Whether the project can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"title":{"description":"The title of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"author":{"description":"The author of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"description":{"description":"The description of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"description":"List of genres of the project.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Genres"},"cover_image_url":{"description":"The cover image URL of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"target_audience":{"description":"The target audience of the project.","anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"title":"Target Audience"},"language":{"description":"Two-letter language code (ISO 639-1) of the language of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"content_type":{"description":"The content type of the project, e.g. 'Novel' or 'Short Story'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"original_publication_date":{"description":"The original publication date of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Publication Date"},"mature_content":{"description":"Whether the project contains mature content.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mature Content"},"isbn_number":{"description":"The ISBN number of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Isbn Number"},"volume_normalization":{"description":"Whether the project uses volume normalization.","type":"boolean","title":"Volume Normalization"},"state":{"description":"The state of the project.","type":"string","enum":["creating","default","converting","in_queue"],"title":"State","x-fern-type-name":"ProjectState"},"access_level":{"description":"The access level of the project.","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"},"fiction":{"description":"Whether the project is fiction.","anyOf":[{"type":"string","enum":["fiction","non-fiction"]},{"type":"null"}],"title":"Fiction"},"quality_check_on":{"description":"Whether quality check is enabled for this project.","type":"boolean","deprecated":true,"title":"Quality Check On"},"quality_check_on_when_bulk_convert":{"description":"Whether quality check is enabled on the project when bulk converting.","type":"boolean","deprecated":true,"title":"Quality Check On When Bulk Convert"},"creation_meta":{"description":"The creation meta of the project.","anyOf":[{"$ref":"#/components/schemas/ProjectCreationMetaResponseModel"},{"type":"null"}]},"source_type":{"description":"The source type of the project.","anyOf":[{"type":"string","enum":["blank","book","article","genfm","video","screenplay"]},{"type":"null"}],"title":"Source Type"},"chapters_enabled":{"description":"Whether chapters are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chapters Enabled"},"captions_enabled":{"description":"Whether captions are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Captions Enabled"},"caption_style":{"description":"Global styling to be applied to all captions","anyOf":[{"$ref":"#/components/schemas/CaptionStyleModel"},{"type":"null"}]},"caption_style_template_overrides":{"description":"Styling changes that have been made to the provided templates","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/CaptionStyleModel"},"type":"object"},{"type":"null"}],"title":"Caption Style Template Overrides"},"public_share_id":{"description":"The public share ID of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Share Id"},"aspect_ratio":{"description":"The aspect ratio of the project.","anyOf":[{"type":"string","enum":["16:9","9:16","4:5","1:1"]},{"type":"null"}],"title":"Aspect Ratio"},"agent_settings":{"description":"Agent-related settings for the project","anyOf":[{"$ref":"#/components/schemas/StudioAgentSettingsModel"},{"type":"null"}]},"default_title_voice_id":{"description":"The default title voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The default paragraph voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Paragraph Voice Id"}},"example":{"access_level":"viewer","author":"John Doe","can_be_downloaded":true,"content_type":"Novel","cover_image_url":"https://example.com/cover.jpg","create_date_unix":1714204800,"created_by_user_id":"Vbtgl3bRdj6lk79rYAgx","creation_meta":{"creation_progress":0.5,"status":"pending","type":"blank"},"default_model_id":"eleven_multilingual_v2","default_paragraph_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_paragraph_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","description":"This is a description of my project.","fiction":"fiction","genres":["Novel","Short Story"],"isbn_number":"978-90-274-3964-2","language":"en","last_conversion_date_unix":1714204800,"mature_content":false,"name":"My Project","original_publication_date":"2025-01-01","project_id":"aw1NgEzBg83R7vgmiJt6","public_share_id":"abc123def456789","quality_check_on":false,"quality_check_on_when_bulk_convert":false,"state":"default","target_audience":"young adult","title":"My Project","volume_normalization":true},"required":["project_id","name","create_date_unix","created_by_user_id","default_title_voice_ref_id","default_paragraph_voice_ref_id","default_model_id","can_be_downloaded","volume_normalization","state","access_level","quality_check_on","quality_check_on_when_bulk_convert","default_title_voice_id","default_paragraph_voice_id"],"title":"ProjectResponseModel","x-fern-type-name":"ProjectResponse"},"ProjectSnapshotExtendedResponseModel":{"type":"object","properties":{"project_snapshot_id":{"description":"The ID of the project snapshot.","type":"string","title":"Project Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"created_at_unix":{"description":"The creation date of the project snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the project snapshot.","type":"string","title":"Name"},"audio_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Audio Upload"},"zip_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Zip Upload"},"character_alignments":{"type":"array","items":{"$ref":"#/components/schemas/CharacterAlignmentModel"},"title":"Character Alignments"},"audio_duration_secs":{"description":"The total duration of the audio in seconds.","type":"number","title":"Audio Duration Secs"}},"example":{"audio_duration_secs":123.45,"character_alignments":[],"created_at_unix":1714204800,"name":"My Project Snapshot","project_id":"aw1NgEzBg83R7vgmiJt6","project_snapshot_id":"aw1NgEzBg83R7vgmiJt6"},"required":["project_snapshot_id","project_id","created_at_unix","name","character_alignments","audio_duration_secs"],"title":"ProjectSnapshotExtendedResponseModel"},"ProjectSnapshotResponseModel":{"type":"object","properties":{"project_snapshot_id":{"description":"The ID of the project snapshot.","type":"string","title":"Project Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"created_at_unix":{"description":"The creation date of the project snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the project snapshot.","type":"string","title":"Name"},"audio_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Audio Upload"},"zip_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Zip Upload"}},"example":{"created_at_unix":1714204800,"name":"My Project Snapshot","project_id":"aw1NgEzBg83R7vgmiJt6","project_snapshot_id":"aw1NgEzBg83R7vgmiJt6"},"required":["project_snapshot_id","project_id","created_at_unix","name"],"title":"ProjectSnapshotResponseModel","x-fern-type-name":"ProjectSnapshotResponse"},"ProjectSnapshotsResponseModel":{"type":"object","properties":{"snapshots":{"description":"List of project snapshots.","type":"array","items":{"$ref":"#/components/schemas/ProjectSnapshotResponseModel"},"title":"Snapshots"}},"example":{"snapshots":[{"created_at_unix":1714204800,"name":"My Project Snapshot","project_id":"aw1NgEzBg83R7vgmiJt6","project_snapshot_id":"aw1NgEzBg83R7vgmiJt6"}]},"required":["snapshots"],"title":"ProjectSnapshotsResponseModel","x-fern-type-name":"ProjectSnapshotsResponse"},"ProjectVideoResponseModel":{"type":"object","properties":{"video_id":{"type":"string","title":"Video Id"},"filename":{"type":"string","title":"Filename"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"},"signed_preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Preview Url"},"offset_ms":{"type":"integer","title":"Offset Ms"},"duration_ms":{"type":"integer","title":"Duration Ms"},"volume_gain_db":{"type":"number","title":"Volume Gain Db"},"muted":{"type":"boolean","title":"Muted"},"fade_in_ms":{"type":"integer","default":0,"title":"Fade In Ms"},"fade_out_ms":{"type":"integer","default":0,"title":"Fade Out Ms"},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"codec":{"type":"string","title":"Codec"},"order":{"type":"string","title":"Order"},"created_at_ms":{"type":"integer","title":"Created At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"thumbnail_interval_seconds":{"type":"number","title":"Thumbnail Interval Seconds"},"thumbnail_size":{"type":"array","items":{"type":"integer"},"maxItems":2,"minItems":2,"prefixItems":[{"type":"integer"},{"type":"integer"}],"title":"Thumbnail Size"},"thumbnail_sheets":{"type":"array","items":{"$ref":"#/components/schemas/ProjectVideoThumbnailSheetResponseModel"},"title":"Thumbnail Sheets"},"start_time_ms":{"type":"integer","title":"Start Time Ms"},"end_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time Ms"},"asset_preview_signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Preview Signed Url"},"source_video_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Video Id"},"source_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Asset Id"},"source_platform_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Platform Asset Id"},"pending_blocks_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingBlocksMetadataModel"},{"type":"null"}]},"pending_external_audios_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingExternalAudiosMetadataModel"},{"type":"null"}]},"speech_imported":{"type":"boolean","default":false,"title":"Speech Imported"},"pending_task":{"anyOf":[{"$ref":"#/components/schemas/PendingClipTask"},{"type":"null"}]},"audio_track_ready":{"type":"boolean","default":true,"title":"Audio Track Ready"},"export_format_ready":{"type":"boolean","default":true,"title":"Export Format Ready"},"current_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Snapshot Id"},"source_context":{"anyOf":[{"$ref":"#/components/schemas/GenerationSourceContext"},{"type":"null"}]},"analysis":{"anyOf":[{"$ref":"#/components/schemas/VideoAnalysis"},{"type":"null"}]},"transcription":{"anyOf":[{"$ref":"#/components/schemas/AssetTranscription"},{"type":"null"}]},"type":{"type":"string","default":"video","const":"video","title":"Type"},"canvas_placement":{"$ref":"#/components/schemas/CanvasPlacement"},"animation":{"$ref":"#/components/schemas/ClipAnimation"},"playback_speed":{"type":"number","default":1,"title":"Playback Speed"},"opacity":{"type":"number","default":1,"maximum":1,"minimum":0,"title":"Opacity"},"track_id":{"type":"string","default":"v0","title":"Track Id"},"preview_job_progress":{"type":"number","readOnly":true,"title":"Preview Job Progress"},"import_speech_progress":{"anyOf":[{"type":"number"},{"type":"null"}],"readOnly":true,"title":"Import Speech Progress"}},"required":["video_id","filename","signed_url","signed_preview_url","offset_ms","duration_ms","volume_gain_db","muted","width","height","codec","order","created_at_ms","updated_at_ms","thumbnail_interval_seconds","thumbnail_size","thumbnail_sheets","start_time_ms","end_time_ms","preview_job_progress","import_speech_progress"],"title":"ProjectVideoResponseModel"},"ProjectVideoThumbnailSheetResponseModel":{"type":"object","properties":{"start_thumbnail_index":{"type":"integer","title":"Start Thumbnail Index"},"thumbnail_count":{"type":"integer","title":"Thumbnail Count"},"signed_cloud_url":{"type":"string","title":"Signed Cloud Url"}},"required":["start_thumbnail_index","thumbnail_count","signed_cloud_url"],"title":"ProjectVideoThumbnailSheetResponseModel"},"ProjectVoiceResponseModel":{"type":"object","properties":{"project_voice_ref_id":{"type":"string","title":"Project Voice Ref Id"},"voice_id":{"type":"string","title":"Voice Id"},"alias":{"type":"string","title":"Alias"},"stability":{"type":"number","title":"Stability"},"similarity_boost":{"type":"number","title":"Similarity Boost"},"style":{"type":"number","title":"Style"},"is_pinned":{"type":"boolean","title":"Is Pinned"},"use_speaker_boost":{"type":"boolean","title":"Use Speaker Boost"},"volume_gain":{"type":"number","title":"Volume Gain"},"speed":{"type":"number","title":"Speed"}},"required":["project_voice_ref_id","voice_id","alias","stability","similarity_boost","style","is_pinned","use_speaker_boost","volume_gain","speed"],"title":"ProjectVoiceResponseModel"},"PromptAgentAPIModel-Input":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","type":"string","default":"","title":"Prompt","x-convai-client-override":true},"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","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM","x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","type":"boolean","default":false,"title":"Enable Reasoning Summary"},"temperature":{"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).","default":0,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","type":"integer","default":-1,"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","type":"array","items":{"type":"string"},"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","$ref":"#/components/schemas/BuiltInTools-Input"},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","$ref":"#/components/schemas/RagConfig"},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","discriminator":{"propertyName":"preference","mapping":{"default":"#/components/schemas/BackupLLMDefault","disabled":"#/components/schemas/BackupLLMDisabled","override":"#/components/schemas/BackupLLMOverride"}},"oneOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","type":"number","default":4,"maximum":15,"minimum":2,"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Input"},{"$ref":"#/components/schemas/ClientToolConfig-Input"},{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"$ref":"#/components/schemas/MCPToolConfig-Input"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input","client":"#/components/schemas/ClientToolConfig-Input","mcp":"#/components/schemas/MCPToolConfig-Input","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Input","webhook":"#/components/schemas/WebhookToolConfig-Input"}}},"deprecated":true,"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModel"},"PromptAgentAPIModel-Output":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","type":"string","default":"","title":"Prompt","x-convai-client-override":true},"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","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM","x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","type":"boolean","default":false,"title":"Enable Reasoning Summary"},"temperature":{"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).","default":0,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","type":"integer","default":-1,"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","type":"array","items":{"type":"string"},"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","$ref":"#/components/schemas/BuiltInTools-Output"},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","$ref":"#/components/schemas/RagConfig"},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","discriminator":{"propertyName":"preference","mapping":{"default":"#/components/schemas/BackupLLMDefault","disabled":"#/components/schemas/BackupLLMDisabled","override":"#/components/schemas/BackupLLMOverride"}},"oneOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","type":"number","default":4,"maximum":15,"minimum":2,"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Output"},{"$ref":"#/components/schemas/ClientToolConfig-Output"},{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"$ref":"#/components/schemas/MCPToolConfig-Output"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output","client":"#/components/schemas/ClientToolConfig-Output","mcp":"#/components/schemas/MCPToolConfig-Output","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Output","webhook":"#/components/schemas/WebhookToolConfig-Output"}}},"deprecated":true,"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModel"},"PromptAgentAPIModelOverride-Input":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]},"title":"PromptAgentAPIModelOverride"},"PromptAgentAPIModelOverride-Output":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]},"title":"PromptAgentAPIModelOverride"},"PromptAgentAPIModelOverrideConfig":{"type":"object","properties":{"prompt":{"description":"Whether to allow overriding the prompt field.","type":"boolean","default":false,"title":"Prompt"},"llm":{"description":"Whether to allow overriding the llm field.","type":"boolean","default":false,"title":"Llm"},"tool_ids":{"description":"Whether to allow overriding the tool_ids field.","type":"boolean","default":false,"title":"Tool Ids"},"native_mcp_server_ids":{"description":"Whether to allow overriding the native_mcp_server_ids field.","type":"boolean","default":false,"title":"Native Mcp Server Ids"},"knowledge_base":{"description":"Whether to allow overriding the knowledge_base field.","type":"boolean","default":false,"title":"Knowledge Base"}},"title":"PromptAgentAPIModelOverrideConfig"},"PromptAgentAPIModelWorkflowOverride-Input":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Reasoning Summary"},"temperature":{"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).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","anyOf":[{"$ref":"#/components/schemas/BuiltInToolsWorkflowOverride-Input"},{"type":"null"}]},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","anyOf":[{"$ref":"#/components/schemas/RagConfigWorkflowOverride"},{"type":"null"}]},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","anyOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"},{"type":"null"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Input"},{"$ref":"#/components/schemas/ClientToolConfig-Input"},{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"$ref":"#/components/schemas/MCPToolConfig-Input"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input","client":"#/components/schemas/ClientToolConfig-Input","mcp":"#/components/schemas/MCPToolConfig-Input","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Input","webhook":"#/components/schemas/WebhookToolConfig-Input"}}},"type":"array"},{"type":"null"}],"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModelWorkflowOverride"},"PromptAgentAPIModelWorkflowOverride-Output":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Reasoning Summary"},"temperature":{"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).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","anyOf":[{"$ref":"#/components/schemas/BuiltInToolsWorkflowOverride-Output"},{"type":"null"}]},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","anyOf":[{"$ref":"#/components/schemas/RagConfigWorkflowOverride"},{"type":"null"}]},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","anyOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"},{"type":"null"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Output"},{"$ref":"#/components/schemas/ClientToolConfig-Output"},{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"$ref":"#/components/schemas/MCPToolConfig-Output"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output","client":"#/components/schemas/ClientToolConfig-Output","mcp":"#/components/schemas/MCPToolConfig-Output","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Output","webhook":"#/components/schemas/WebhookToolConfig-Output"}}},"type":"array"},{"type":"null"}],"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModelWorkflowOverride"},"PromptEvaluationCriteria":{"description":"An evaluation using the transcript and a prompt for a yes/no achieved answer","type":"object","properties":{"id":{"description":"The unique identifier for the evaluation criteria","type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"description":"The type of evaluation criteria","type":"string","default":"prompt","const":"prompt","title":"Type"},"conversation_goal_prompt":{"description":"The prompt that the agent should use to evaluate the conversation","type":"string","maxLength":2000,"title":"Conversation Goal Prompt"},"use_knowledge_base":{"description":"When evaluating the prompt, should the agent's knowledge base be used.","type":"boolean","default":false,"title":"Use Knowledge Base"},"scope":{"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.","default":"conversation","$ref":"#/components/schemas/AnalysisScope"},"llm":{"description":"LLM model to use for this evaluation criteria. If not set, uses agent's analysis_llm default.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"scoring_mode":{"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.","default":"binary","$ref":"#/components/schemas/CriteriaScoringMode"},"max_score":{"description":"Maximum value of the numeric score scale (minimum is always 0). Only used when scoring_mode is 'numeric_uniform'.","type":"integer","default":100,"title":"Max Score"},"score_instructions":{"description":"Optional free-text instructions describing how to assign values on the numeric scale. Only used when scoring_mode is 'numeric_uniform'.","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Score Instructions"}},"examples":[{"conversation_goal_prompt":"Determine whether the agent fully resolved the user's issue.","id":"criterion_binary_001","max_score":100,"name":"Issue resolved","scope":"conversation","scoring_mode":"binary","use_knowledge_base":false},{"conversation_goal_prompt":"Rate how completely and correctly the issue was resolved.","id":"criterion_numeric_001","max_score":100,"name":"Resolution quality","scope":"conversation","score_instructions":"0 means unresolved, 50 means partially resolved, 100 means fully resolved with correct details.","scoring_mode":"numeric_uniform","use_knowledge_base":false}],"required":["id","name","conversation_goal_prompt"],"title":"PromptEvaluationCriteria"},"PromptInjectionGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"}},"title":"PromptInjectionGuardrail"},"PronunciationDictionaryAliasRuleRequestModel":{"type":"object","properties":{"string_to_replace":{"description":"The string to replace. Must be a non-empty string.","type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule should match case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule should only match at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"description":"The type of the rule.","type":"string","const":"alias","title":"Type"},"alias":{"description":"The alias for the string to be replaced.","type":"string","title":"Alias"}},"example":{"alias":"tie-land","case_sensitive":true,"string_to_replace":"Thailand","type":"alias","word_boundaries":true},"required":["string_to_replace","type","alias"],"title":"PronunciationDictionaryAliasRuleRequestModel"},"PronunciationDictionaryAliasRuleResponseModel":{"type":"object","properties":{"string_to_replace":{"type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule matches case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule only matches at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"type":"string","const":"alias","title":"Type"},"alias":{"type":"string","title":"Alias"}},"required":["string_to_replace","type","alias"],"title":"PronunciationDictionaryAliasRuleResponseModel"},"PronunciationDictionaryLocatorResponseModel":{"type":"object","properties":{"pronunciation_dictionary_id":{"type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id","version_id"],"title":"PronunciationDictionaryLocatorResponseModel"},"PronunciationDictionaryPhonemeRuleRequestModel":{"type":"object","properties":{"string_to_replace":{"description":"The string to replace. Must be a non-empty string.","type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule should match case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule should only match at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"description":"The type of the rule.","type":"string","const":"phoneme","title":"Type"},"phoneme":{"description":"The phoneme rule.","type":"string","title":"Phoneme"},"alphabet":{"description":"The alphabet to use with the phoneme rule.","type":"string","title":"Alphabet"}},"example":{"alphabet":"ipa","case_sensitive":true,"phoneme":"/ˈtaɪ.lænd/","string_to_replace":"Thailand","type":"phoneme","word_boundaries":true},"required":["string_to_replace","type","phoneme","alphabet"],"title":"PronunciationDictionaryPhonemeRuleRequestModel"},"PronunciationDictionaryPhonemeRuleResponseModel":{"type":"object","properties":{"string_to_replace":{"type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule matches case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule only matches at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"type":"string","const":"phoneme","title":"Type"},"phoneme":{"type":"string","title":"Phoneme"},"alphabet":{"type":"string","title":"Alphabet"}},"required":["string_to_replace","type","phoneme","alphabet"],"title":"PronunciationDictionaryPhonemeRuleResponseModel"},"PronunciationDictionaryRulesResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Id"},"version_id":{"description":"The version ID of the pronunciation dictionary.","type":"string","title":"Version Id"},"version_rules_num":{"description":"The number of rules in the version of the pronunciation dictionary.","type":"integer","title":"Version Rules Num"}},"example":{"id":"5xM3yVvZQKV0EfqQpLrJ","version_id":"5xM3yVvZQKV0EfqQpLr2","version_rules_num":5},"required":["id","version_id","version_rules_num"],"title":"PronunciationDictionaryRulesResponseModel"},"PronunciationDictionaryVersionLocatorDBModel":{"type":"object","properties":{"pronunciation_dictionary_id":{"type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id","version_id"],"title":"PronunciationDictionaryVersionLocatorDBModel","x-fern-type-name":"PronunciationDictionaryVersionLocator"},"PronunciationDictionaryVersionLocatorRequestModel":{"type":"object","properties":{"pronunciation_dictionary_id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"description":"The ID of the version of the pronunciation dictionary. If not provided, the latest version will be used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id"],"title":"PronunciationDictionaryVersionLocatorRequestModel","x-fern-type-name":"PronunciationDictionaryVersionLocator"},"PronunciationDictionaryVersionResponseModel":{"type":"object","properties":{"version_id":{"type":"string","title":"Version Id"},"version_rules_num":{"type":"integer","title":"Version Rules Num"},"pronunciation_dictionary_id":{"type":"string","title":"Pronunciation Dictionary Id"},"dictionary_name":{"type":"string","title":"Dictionary Name"},"version_name":{"type":"string","title":"Version Name"},"permission_on_resource":{"anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"},"created_by":{"type":"string","title":"Created By"},"creation_time_unix":{"type":"integer","title":"Creation Time Unix"},"archived_time_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Archived Time Unix"}},"required":["version_id","version_rules_num","pronunciation_dictionary_id","dictionary_name","version_name","permission_on_resource","created_by","creation_time_unix"],"title":"PronunciationDictionaryVersionResponseModel"},"PydanticPronunciationDictionaryVersionLocator":{"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.","type":"object","properties":{"pronunciation_dictionary_id":{"description":"The ID of the pronunciation dictionary","type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"description":"The ID of the version of the pronunciation dictionary","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id","version_id"],"title":"PydanticPronunciationDictionaryVersionLocator"},"QualityPresetType":{"type":"string","default":"standard","enum":["standard","high","ultra","ultra_lossless"]},"QueryParamsJsonSchema":{"type":"object","properties":{"properties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"minProperties":1,"title":"Properties"},"required":{"type":"array","items":{"type":"string"},"title":"Required"}},"additionalProperties":false,"required":["properties"],"title":"QueryParamsJsonSchema"},"QuoteInfo":{"type":"object","properties":{"amount_usd":{"description":"The quoted price for this item in USD. Use the order's total_amount_usd for the combined order total.","type":"number","title":"Amount Usd"}},"example":{"amount_usd":11},"required":["amount_usd"],"title":"QuoteInfo"},"RAGDocumentIndexResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"status":{"$ref":"#/components/schemas/RAGIndexStatus"},"progress_percentage":{"type":"number","title":"Progress Percentage"},"document_model_index_usage":{"$ref":"#/components/schemas/RAGDocumentIndexUsage"}},"required":["id","model","status","progress_percentage","document_model_index_usage"],"title":"RAGDocumentIndexResponseModel"},"RAGDocumentIndexUsage":{"type":"object","properties":{"used_bytes":{"type":"integer","title":"Used Bytes"}},"required":["used_bytes"],"title":"RAGDocumentIndexUsage"},"RAGDocumentIndexesResponseModel":{"type":"object","properties":{"indexes":{"type":"array","items":{"$ref":"#/components/schemas/RAGDocumentIndexResponseModel"},"title":"Indexes"}},"required":["indexes"],"title":"RAGDocumentIndexesResponseModel"},"RAGIndexBatchSuccessfulResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"success","const":"success","title":"Status"},"data":{"$ref":"#/components/schemas/RAGDocumentIndexResponseModel"}},"required":["status","data"],"title":"RAGIndexBatchSuccessfulResponseModel"},"RAGIndexOverviewEmbeddingModelResponseModel":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"used_bytes":{"type":"integer","title":"Used Bytes"}},"required":["model","used_bytes"],"title":"RAGIndexOverviewEmbeddingModelResponseModel"},"RAGIndexOverviewResponseModel":{"type":"object","properties":{"total_used_bytes":{"type":"integer","title":"Total Used Bytes"},"total_max_bytes":{"type":"integer","title":"Total Max Bytes"},"models":{"type":"array","items":{"$ref":"#/components/schemas/RAGIndexOverviewEmbeddingModelResponseModel"},"title":"Models"}},"required":["total_used_bytes","total_max_bytes","models"],"title":"RAGIndexOverviewResponseModel"},"RAGIndexRequestModel":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"}},"required":["model"],"title":"RAGIndexRequestModel"},"RAGIndexStatus":{"type":"string","enum":["new","created","processing","failed","succeeded","rag_limit_exceeded","document_too_small","cannot_index_folder"],"title":"RAGIndexStatus"},"RagChunkMetadata":{"type":"object","properties":{"document_id":{"type":"string","title":"Document Id"},"chunk_id":{"type":"string","title":"Chunk Id"},"vector_distance":{"type":"number","title":"Vector Distance"}},"required":["document_id","chunk_id","vector_distance"],"title":"RagChunkMetadata"},"RagConfig":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"embedding_model":{"default":"e5_mistral_7b_instruct","$ref":"#/components/schemas/EmbeddingModelEnum"},"max_vector_distance":{"description":"Maximum vector distance of retrieved chunks.","type":"number","default":0.6,"examples":[0.5],"exclusiveMaximum":1,"exclusiveMinimum":0,"title":"Max Vector Distance"},"max_documents_length":{"description":"Maximum total length of document chunks retrieved from RAG.","type":"integer","default":50000,"examples":["50000"],"exclusiveMaximum":10000000,"exclusiveMinimum":0,"title":"Max Documents Length"},"max_retrieved_rag_chunks_count":{"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.","type":"integer","default":20,"examples":[5],"exclusiveMinimum":0,"maximum":20,"title":"Max Retrieved Rag Chunks Count"},"num_candidates":{"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.","anyOf":[{"type":"integer","maximum":10000,"exclusiveMinimum":0},{"type":"null"}],"examples":[300],"title":"Num Candidates"},"query_rewrite_prompt_override":{"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.","anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"examples":["You are given a conversation between a user and an assistant. Rewrite the last question to be self-contained and clear."],"title":"Query Rewrite Prompt Override"}},"title":"RagConfig"},"RagConfigWorkflowOverride":{"type":"object","properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"embedding_model":{"anyOf":[{"$ref":"#/components/schemas/EmbeddingModelEnum"},{"type":"null"}]},"max_vector_distance":{"description":"Maximum vector distance of retrieved chunks.","anyOf":[{"type":"number"},{"type":"null"}],"examples":[0.5],"title":"Max Vector Distance"},"max_documents_length":{"description":"Maximum total length of document chunks retrieved from RAG.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":["50000"],"title":"Max Documents Length"},"max_retrieved_rag_chunks_count":{"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.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[5],"title":"Max Retrieved Rag Chunks Count"},"num_candidates":{"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.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[300],"title":"Num Candidates"},"query_rewrite_prompt_override":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["You are given a conversation between a user and an assistant. Rewrite the last question to be self-contained and clear."],"title":"Query Rewrite Prompt Override"}},"title":"RagConfigWorkflowOverride"},"RagRetrievalInfo":{"type":"object","properties":{"chunks":{"type":"array","items":{"$ref":"#/components/schemas/RagChunkMetadata"},"title":"Chunks"},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"retrieval_query":{"type":"string","title":"Retrieval Query"},"rag_latency_secs":{"type":"number","title":"Rag Latency Secs"},"used_chunk_ids":{"type":"array","items":{"type":"string"},"title":"Used Chunk Ids"}},"required":["chunks","embedding_model","retrieval_query","rag_latency_secs"],"title":"RagRetrievalInfo"},"ReadLegalTerms":{"type":"object","properties":{"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}},"title":"ReadLegalTerms"},"ReadMetadataChapterDBModel":{"type":"object","properties":{"chapter_name":{"type":"string","title":"Chapter Name"},"word_count":{"type":"integer","title":"Word Count"},"char_count":{"type":"integer","title":"Char Count"},"starting_char_offset":{"type":"integer","title":"Starting Char Offset"},"has_parsed_html":{"type":"boolean","default":false,"title":"Has Parsed Html"},"has_summary":{"type":"boolean","default":false,"title":"Has Summary"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"file_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Number"},"is_fallback_name":{"type":"boolean","default":false,"title":"Is Fallback Name"},"chapter_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chapter Id"}},"required":["chapter_name","word_count","char_count","starting_char_offset"],"title":"ReadMetadataChapterDBModel"},"ReaderResourceResponseModel":{"type":"object","properties":{"resource_type":{"description":"The type of resource.","type":"string","enum":["read","collection"],"title":"Resource Type"},"resource_id":{"description":"The ID of the resource.","type":"string","title":"Resource Id"}},"example":{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"},"required":["resource_type","resource_id"],"title":"ReaderResourceResponseModel"},"RealtimeConfigSnapshot":{"type":"object","properties":{"_id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"conversation_id":{"type":"string","title":"Conversation Id"},"seq_no":{"type":"integer","title":"Seq No"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"time_committed_secs":{"type":"integer","title":"Time Committed Secs"},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"parents":{"$ref":"#/components/schemas/RealtimeConfigSnapshotParents"},"session_config":{"$ref":"#/components/schemas/OpenAISessionConfig"},"safety":{"$ref":"#/components/schemas/SafetyCommonModel-Output"},"changed_paths":{"type":"array","items":{"type":"string"},"title":"Changed Paths"}},"required":["_id","workspace_id","conversation_id","seq_no","time_in_call_secs","time_committed_secs","parents","session_config","safety"],"title":"RealtimeConfigSnapshot"},"RealtimeConfigSnapshotParents":{"type":"object","properties":{"previous_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Snapshot Id"}},"title":"RealtimeConfigSnapshotParents"},"RecordingResponseModel":{"type":"object","properties":{"recording_id":{"description":"The ID of the recording.","type":"string","title":"Recording Id"},"mime_type":{"description":"The MIME type of the recording.","type":"string","title":"Mime Type"},"size_bytes":{"description":"The size of the recording in bytes.","type":"integer","title":"Size Bytes"},"upload_date_unix":{"description":"The date of the recording in Unix time.","type":"integer","title":"Upload Date Unix"},"transcription":{"description":"The transcription of the recording.","type":"string","title":"Transcription"}},"example":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"required":["recording_id","mime_type","size_bytes","upload_date_unix","transcription"],"title":"RecordingResponseModel","x-fern-type-name":"RecordingResponse"},"ReferenceVideo":{"type":"object","properties":{"generation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generation Id"},"content_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Asset Id"},"template_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Node Id"},"studio_clip":{"anyOf":[{"$ref":"#/components/schemas/StudioClipReference"},{"type":"null"}]}},"title":"ReferenceVideo"},"ReferencedToolCommonModel":{"description":"Reference to a tool for unit test evaluation.","type":"object","properties":{"id":{"description":"The ID of the tool","type":"string"},"type":{"description":"The type of the tool","type":"string","enum":["system","webhook","client","workflow","api_integration_webhook","mcp","code"]}},"required":["id","type"],"title":"ReferencedToolCommonModel"},"RefreshTokenAuthResponse":{"description":"Response model for OAuth2 refresh-token-grant auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"refresh_token_auth","const":"refresh_token_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_id":{"type":"string","title":"Client Id"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"default":[],"title":"Scopes"},"extra_params":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Extra Params"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","client_id","token_url","id"],"title":"RefreshTokenAuthResponse"},"RegexParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"regex","title":"Type"},"pattern":{"description":"A regex pattern to match the agent's response against.","type":"string","title":"Pattern"}},"required":["type","pattern"],"title":"RegexParameterEvaluationStrategy"},"RegionConfigRequest":{"type":"object","properties":{"region_id":{"description":"Region ID","$ref":"#/components/schemas/TwilioRegionId"},"token":{"description":"Auth Token for this region","type":"string","title":"Token"},"edge_location":{"description":"Edge location for this region","$ref":"#/components/schemas/TwilioEdgeLocation"}},"required":["region_id","token","edge_location"],"title":"RegionConfigRequest"},"RegionalProcessingSurchargeInfo":{"type":"object","properties":{"multiplier":{"description":"The surcharge multiplier applied to this model's pricing (e.g. 1.1 for a 10% surcharge).","type":"number","title":"Multiplier"}},"example":{"multiplier":1.1},"required":["multiplier"],"title":"RegionalProcessingSurchargeInfo"},"RegisterForGroupSessionParams":{"description":"Register a client for a scheduled group session.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"register_for_group_session","const":"register_for_group_session","title":"Smb Tool Type"}},"title":"RegisterForGroupSessionParams"},"RegisterMediaResponse":{"type":"object","properties":{"media_id":{"description":"The ID of the uploaded media file.","$ref":"#/components/schemas/MediaId"}},"example":{"media_id":"prodmedia_01jgb2zd68f8f9tfvbb968wb8z"},"required":["media_id"],"title":"RegisterMediaResponse"},"RemoveOrderItemResponse":{"type":"object","properties":{"success":{"description":"Whether the item was successfully removed.","type":"boolean","title":"Success"}},"example":{"success":true},"required":["success"],"title":"RemoveOrderItemResponse"},"Render":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"version":{"type":"integer","title":"Version"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"type":{"anyOf":[{"$ref":"#/components/schemas/RenderType"},{"type":"null"}]},"media_ref":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]},"status":{"type":"string","enum":["complete","processing","failed"],"title":"Status"}},"required":["id","version","language","type","media_ref","status"],"title":"Render"},"RenderType":{"type":"string","enum":["mp4","aac","mp3","wav","aaf","tracks_zip","clips_zip","zip"],"title":"RenderType"},"ReportKnowledgeGapParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"report_knowledge_gap","const":"report_knowledge_gap","title":"Smb Tool Type"}},"title":"ReportKnowledgeGapParams"},"RequestPVCManualVerificationResponseModel":{"type":"object","properties":{"status":{"description":"The status of the request PVC manual verification request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"RequestPVCManualVerificationResponseModel"},"RequiredConstraint":{"description":"A set of fields that must all be present to satisfy this constraint.","type":"object","properties":{"required":{"type":"array","items":{"type":"string"},"title":"Required"}},"required":["required"],"title":"RequiredConstraint"},"RequiredConstraints":{"description":"Wrapper for anyOf/allOf composition constraints scoped to required fields.","type":"object","properties":{"any_of":{"type":"array","items":{"$ref":"#/components/schemas/RequiredConstraint"},"title":"Any Of"},"all_of":{"type":"array","items":{"$ref":"#/components/schemas/RequiredConstraint"},"title":"All Of"}},"title":"RequiredConstraints"},"ResourceAccessInfo":{"type":"object","properties":{"is_creator":{"description":"Whether the user making the request is the creator of the agent","type":"boolean","title":"Is Creator"},"creator_name":{"description":"Name of the agent's creator","type":"string","title":"Creator Name"},"creator_email":{"description":"Email of the agent's creator","type":"string","title":"Creator Email"},"role":{"description":"The role of the user making the request","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Role"},"anonymous_access_level_override":{"description":"The access level for anonymous users. If None, the resource is not shared publicly.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Anonymous Access Level Override"},"access_source":{"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.","anyOf":[{"type":"string","enum":["creator","explicit","workspace_admin","workspace_default"]},{"type":"null"}],"title":"Access Source"}},"example":{"access_source":"creator","creator_email":"john.doe@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"required":["is_creator","creator_name","creator_email","role"],"title":"ResourceAccessInfo"},"ResourceMetadataResponseModel":{"type":"object","properties":{"resource_id":{"description":"The ID of the resource.","type":"string","title":"Resource Id"},"resource_name":{"description":"The name of the resource, if available.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Name"},"resource_type":{"description":"The type of the resource.","$ref":"#/components/schemas/WorkspaceResourceType"},"creator_user_id":{"description":"The ID of the user who created the resource.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator User Id"},"anonymous_access_level_override":{"description":"The access level for anonymous users. If None, the resource is not shared publicly.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Anonymous Access Level Override"},"role_to_group_ids":{"description":"A mapping of roles to group IDs. When the resource is shared with a user, the group id is the user's id.","type":"object","additionalProperties":{"items":{"type":"string"},"type":"array"},"propertyNames":{"enum":["admin","editor","commenter","viewer"]},"title":"Role To Group Ids"},"share_options":{"description":"List of options for sharing the resource further in the workspace. These are users who don't have access to the resource yet.","type":"array","items":{"$ref":"#/components/schemas/ShareOptionResponseModel"},"title":"Share Options"}},"example":{"anonymous_access_level_override":"viewer","creator_user_id":"5zavrE1kZXv2lFw9BKgEkf0B5Wqo","resource_id":"4ZUqyldxf71HqUbcP2Lc","resource_name":"My Custom Voice","resource_type":"voice","role_to_group_ids":{"admin":["5zavrE1kZXv2lFw9BKgEkf0B5Wqo"],"editor":["8ruQDGM2R4w1mFbHI5aROCUjIpJZ"],"viewer":[]},"share_options":[{"id":"i2YYI6huwBmcgYydAXARmQJc3pmX","name":"user@example.com","type":"user"},{"id":"x1AfvYKAmiqxCnbvZeNXHqqthJaC","name":"mygroup","type":"group"}]},"required":["resource_id","resource_name","resource_type","creator_user_id","anonymous_access_level_override","role_to_group_ids","share_options"],"title":"ResourceMetadataResponseModel"},"ResponseFilter":{"description":"Configuration for filtering tool responses before they are visible to the agent.","type":"object","properties":{"mode":{"description":"Controls how tool responses are filtered. 'all' returns entire response, 'allow' returns only specified paths, 'hide_all' hides the entire response.","default":"all","$ref":"#/components/schemas/ResponseFilterMode"},"filters":{"description":"Dot notation paths to include when mode is 'allow' (e.g., ['ticket.id', 'ticket.status']).","type":"array","items":{"type":"string"},"title":"Filters"},"content_type":{"description":"Content type for response filtering. Only 'application/json' responses are filtered.","type":"string","default":"application/json","const":"application/json","title":"Content Type"}},"title":"ResponseFilter"},"ResponseFilterMode":{"description":"Controls how tool responses are filtered before being visible to the agent.","type":"string","default":"all","enum":["all","allow","hide_all"],"title":"ResponseFilterMode"},"ResponseUnitTestModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"}},"title":"ResponseUnitTestModel"},"RestoreCalendarEventParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"restore_calendar_event","const":"restore_calendar_event","title":"Smb Tool Type"}},"title":"RestoreCalendarEventParams"},"ResubmitTestsRequestModel":{"type":"object","properties":{"test_run_ids":{"description":"List of test run IDs to resubmit","type":"array","items":{"type":"string"},"maxItems":5000,"minItems":1,"title":"Test Run Ids"},"agent_config_override":{"description":"Configuration overrides to use for testing. If not provided, the agent's default configuration will be used.","anyOf":[{"$ref":"#/components/schemas/AdhocAgentConfigOverrideForTestRequestModel"},{"type":"null"}]},"agent_id":{"description":"Agent ID to resubmit tests for","type":"string","title":"Agent Id"},"branch_id":{"description":"ID of the branch to run the tests on. If not provided, the tests will be run on the agent's main branch.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"required":["test_run_ids","agent_id"],"title":"ResubmitTestsRequestModel"},"RetryTriggerAction":{"type":"object","properties":{"type":{"type":"string","default":"retry","const":"retry","title":"Type"},"feedback":{"description":"Custom feedback to inject into the agent when retrying after guardrail trigger.","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?\".","title":"Feedback"}},"title":"RetryTriggerAction"},"ReviewResponseModel":{"type":"object","properties":{"review_status":{"type":"string","enum":["approved","edits_required","rejected"],"title":"Review Status"},"reviewed_at_unix":{"type":"integer","title":"Reviewed At Unix"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"reject_reasons":{"anyOf":[{"items":{"type":"string","enum":["lacks_structure","doesnt_open","not_literary_work","language_not_supported","too_short","duplicate","promotional","formatting_issues","low_quality","metadata_incomplete","metadata_inaccurate","typos","review_error","spam","legal_violation","content_policy","public_domain","other"]},"type":"array"},{"type":"null"}],"title":"Reject Reasons"},"scores_breakdown":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Scores Breakdown"},"rejected_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejected Details"},"explanation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explanation"}},"required":["review_status","reviewed_at_unix"],"title":"ReviewResponseModel"},"RunAgentTestsRequestModel":{"type":"object","properties":{"tests":{"description":"List of tests to run on the agent","type":"array","items":{"$ref":"#/components/schemas/SingleTestRunRequestModel"},"maxItems":5000,"minItems":1,"title":"Tests"},"agent_config_override":{"description":"Configuration overrides to use for testing. If not provided, the agent's default configuration will be used.","anyOf":[{"$ref":"#/components/schemas/AdhocAgentConfigOverrideForTestRequestModel"},{"type":"null"}]},"branch_id":{"description":"ID of the branch to run the tests on. If not provided, the tests will be run on the agent's main branch.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"repeat_count":{"description":"Number of times to run each test. When greater than 1, results are grouped and summarized.","type":"integer","default":1,"maximum":50,"minimum":1,"title":"Repeat Count"}},"required":["tests"],"title":"RunAgentTestsRequestModel"},"RunConversationEvaluationsRequest":{"type":"object","properties":{"evaluation_id":{"description":"ID of the single evaluation criterion to rerun.","type":"string","title":"Evaluation Id"},"scope":{"default":"conversation","$ref":"#/components/schemas/AnalysisScope"}},"required":["evaluation_id"],"title":"RunConversationEvaluationsRequest"},"RunSubagentToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"run_subagent","const":"run_subagent","title":"System Tool Type"},"agents":{"type":"array","items":{"$ref":"#/components/schemas/SubAgent-Input"},"title":"Agents"}},"required":["agents"],"title":"RunSubagentToolConfig"},"RunSubagentToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"run_subagent","const":"run_subagent","title":"System Tool Type"},"agents":{"type":"array","items":{"$ref":"#/components/schemas/SubAgent-Output"},"title":"Agents"}},"required":["agents"],"title":"RunSubagentToolConfig"},"RunSubagentToolResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"run_subagent_error","const":"run_subagent_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"error":{"type":"string","title":"Error"}},"required":["error"],"title":"RunSubagentToolResultErrorModel"},"RunSubagentToolResultSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"run_subagent_success","const":"run_subagent_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"query":{"type":"string","title":"Query"},"agent_response":{"type":"string","title":"Agent Response"}},"required":["query","agent_response"],"title":"RunSubagentToolResultSuccessModel"},"SIPLogMessage":{"type":"object","properties":{"call_id":{"type":"string","title":"Call Id"},"phone_numbers":{"type":"array","items":{"type":"string"},"title":"Phone Numbers"},"local_address":{"type":"string","title":"Local Address"},"remote_address":{"type":"string","title":"Remote Address"},"transport":{"type":"string","title":"Transport"},"raw_message":{"type":"string","title":"Raw Message"},"error_message":{"type":"string","title":"Error Message"},"direction":{"$ref":"#/components/schemas/SIPLogMessageDirection"},"created_at_unix_micro":{"type":"integer","title":"Created At Unix Micro"}},"required":["call_id","phone_numbers","local_address","remote_address","transport","raw_message","error_message","direction","created_at_unix_micro"],"title":"SIPLogMessage"},"SIPLogMessageDirection":{"type":"string","enum":["in","out"],"title":"SIPLogMessageDirection"},"SIPMediaEncryptionEnum":{"type":"string","default":"allowed","enum":["disabled","allowed","required"],"title":"SIPMediaEncryptionEnum"},"SIPTrunkCredentialsRequestModel":{"type":"object","properties":{"username":{"description":"SIP trunk username","type":"string","title":"Username"},"password":{"description":"SIP trunk password - if not specified, then remain unchanged","anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"required":["username"],"title":"SIPTrunkCredentialsRequestModel"},"SIPTrunkOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"sip_call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sip Call Id"}},"required":["success","message","conversation_id","sip_call_id"],"title":"SIPTrunkOutboundCallResponse"},"SIPTrunkTransportEnum":{"type":"string","default":"auto","enum":["auto","udp","tcp","tls"],"title":"SIPTrunkTransportEnum"},"SIPUriDynamicVariableTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"sip_uri_dynamic_variable","const":"sip_uri_dynamic_variable","title":"Type"},"sip_uri":{"type":"string","title":"Sip Uri"}},"required":["sip_uri"],"title":"SIPUriDynamicVariableTransferDestination"},"SIPUriTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"sip_uri","const":"sip_uri","title":"Type"},"sip_uri":{"type":"string","title":"Sip Uri"}},"required":["sip_uri"],"title":"SIPUriTransferDestination"},"SMBToolConfig":{"description":"SMB tool configuration that wraps SMB tool parameters.","type":"object","properties":{"type":{"description":"Tool type identifier","type":"string","default":"smb","const":"smb","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","default":"","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete.","type":"integer","default":20,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"enabled":{"description":"Whether this tool is enabled for the agent","type":"boolean","default":true,"title":"Enabled"},"params":{"discriminator":{"propertyName":"smb_tool_type","mapping":{"cancel_calendar_event":"#/components/schemas/CancelCalendarEventParams","cancel_group_session_for_all":"#/components/schemas/CancelGroupSessionForAllParams","cancel_group_session_registration":"#/components/schemas/CancelGroupSessionRegistrationParams","check_service_availability":"#/components/schemas/CheckServiceAvailabilityParams","create_agent_procedure":"#/components/schemas/CreateAgentProcedureParams","create_agent_rule":"#/components/schemas/CreateAgentRuleParams","create_asset":"#/components/schemas/CreateAssetParams","create_client":"#/components/schemas/CreateClientParams","create_client_appointment":"#/components/schemas/CreateClientAppointmentParams","create_client_interaction":"#/components/schemas/CreateClientInteractionParams","create_holiday":"#/components/schemas/CreateHolidayParams","create_location":"#/components/schemas/CreateLocationParams","create_product":"#/components/schemas/CreateProductParams","create_service":"#/components/schemas/CreateServiceParams","create_staff":"#/components/schemas/CreateStaffParams","delete_agent_procedure":"#/components/schemas/DeleteAgentProcedureParams","delete_agent_rule":"#/components/schemas/DeleteAgentRuleParams","delete_asset":"#/components/schemas/DeleteAssetParams","delete_calendar_event":"#/components/schemas/DeleteCalendarEventParams","delete_client":"#/components/schemas/DeleteClientParams","delete_client_interaction":"#/components/schemas/DeleteClientInteractionParams","delete_group_session":"#/components/schemas/DeleteGroupSessionParams","delete_holiday":"#/components/schemas/DeleteHolidayParams","delete_location":"#/components/schemas/DeleteLocationParams","delete_product":"#/components/schemas/DeleteProductParams","delete_service":"#/components/schemas/DeleteServiceParams","delete_staff":"#/components/schemas/DeleteStaffParams","get_analytics_summary":"#/components/schemas/GetAnalyticsSummaryParams","get_appointment_by_confirmation_number":"#/components/schemas/GetAppointmentByConfirmationNumberParams","get_booking_page_settings":"#/components/schemas/GetBookingPageSettingsParams","get_booking_slug_status":"#/components/schemas/GetBookingSlugStatusParams","get_client_appointments":"#/components/schemas/GetClientAppointmentsParams","get_client_by_phone":"#/components/schemas/GetClientByPhoneParams","get_schedule":"#/components/schemas/GetScheduleParams","leave_message":"#/components/schemas/LeaveMessageParams","list_agent_procedures":"#/components/schemas/ListAgentProceduresParams","list_agent_references":"#/components/schemas/ListAgentReferencesParams","list_agent_rules":"#/components/schemas/ListAgentRulesParams","list_assets":"#/components/schemas/ListAssetsParams","list_calendar_events":"#/components/schemas/ListCalendarEventsParams","list_client_interactions":"#/components/schemas/ListClientInteractionsParams","list_clients":"#/components/schemas/ListClientsParams","list_customer_facing_agents":"#/components/schemas/ListCustomerFacingAgentsParams","list_group_sessions":"#/components/schemas/ListGroupSessionsParams","list_holidays":"#/components/schemas/ListHolidaysParams","list_locations":"#/components/schemas/ListLocationsParams","list_products":"#/components/schemas/ListProductsParams","list_services":"#/components/schemas/ListServicesParams","list_staff":"#/components/schemas/ListStaffParams","opt_in_sms_reminder":"#/components/schemas/OptInSmsReminderParams","opt_out_sms_reminder":"#/components/schemas/OptOutSmsReminderParams","register_for_group_session":"#/components/schemas/RegisterForGroupSessionParams","report_knowledge_gap":"#/components/schemas/ReportKnowledgeGapParams","restore_calendar_event":"#/components/schemas/RestoreCalendarEventParams","schedule_group_session":"#/components/schemas/ScheduleGroupSessionParams","search_clients":"#/components/schemas/SearchClientsParams","set_booking_slug":"#/components/schemas/SetBookingSlugParams","submit_business_info":"#/components/schemas/SubmitBusinessInfoParams","update_agent_procedure":"#/components/schemas/UpdateAgentProcedureParams","update_agent_rule":"#/components/schemas/UpdateAgentRuleParams","update_asset":"#/components/schemas/UpdateAssetParams","update_booking_page_appearance":"#/components/schemas/UpdateBookingPageAppearanceParams","update_booking_page_settings":"#/components/schemas/UpdateBookingPageSettingsParams","update_business_info":"#/components/schemas/UpdateBusinessInfoParams","update_calendar_event":"#/components/schemas/UpdateCalendarEventParams","update_client":"#/components/schemas/UpdateClientParams","update_customer_facing_config":"#/components/schemas/UpdateCustomerFacingConfigParams","update_group_session_seats":"#/components/schemas/UpdateGroupSessionSeatsParams","update_holiday":"#/components/schemas/UpdateHolidayParams","update_location":"#/components/schemas/UpdateLocationParams","update_product":"#/components/schemas/UpdateProductParams","update_service":"#/components/schemas/UpdateServiceParams","update_staff":"#/components/schemas/UpdateStaffParams"}},"oneOf":[{"$ref":"#/components/schemas/SearchClientsParams"},{"$ref":"#/components/schemas/ListClientsParams"},{"$ref":"#/components/schemas/GetClientByPhoneParams"},{"$ref":"#/components/schemas/CreateClientParams"},{"$ref":"#/components/schemas/UpdateClientParams"},{"$ref":"#/components/schemas/DeleteClientParams"},{"$ref":"#/components/schemas/ListStaffParams"},{"$ref":"#/components/schemas/CreateStaffParams"},{"$ref":"#/components/schemas/UpdateStaffParams"},{"$ref":"#/components/schemas/DeleteStaffParams"},{"$ref":"#/components/schemas/ListAssetsParams"},{"$ref":"#/components/schemas/CreateAssetParams"},{"$ref":"#/components/schemas/UpdateAssetParams"},{"$ref":"#/components/schemas/DeleteAssetParams"},{"$ref":"#/components/schemas/ListServicesParams"},{"$ref":"#/components/schemas/CreateServiceParams"},{"$ref":"#/components/schemas/UpdateServiceParams"},{"$ref":"#/components/schemas/DeleteServiceParams"},{"$ref":"#/components/schemas/ListProductsParams"},{"$ref":"#/components/schemas/CreateProductParams"},{"$ref":"#/components/schemas/UpdateProductParams"},{"$ref":"#/components/schemas/DeleteProductParams"},{"$ref":"#/components/schemas/CheckServiceAvailabilityParams"},{"$ref":"#/components/schemas/CreateClientAppointmentParams"},{"$ref":"#/components/schemas/GetClientAppointmentsParams"},{"$ref":"#/components/schemas/GetAppointmentByConfirmationNumberParams"},{"$ref":"#/components/schemas/ListGroupSessionsParams"},{"$ref":"#/components/schemas/ScheduleGroupSessionParams"},{"$ref":"#/components/schemas/RegisterForGroupSessionParams"},{"$ref":"#/components/schemas/CancelGroupSessionRegistrationParams"},{"$ref":"#/components/schemas/UpdateGroupSessionSeatsParams"},{"$ref":"#/components/schemas/CancelGroupSessionForAllParams"},{"$ref":"#/components/schemas/DeleteGroupSessionParams"},{"$ref":"#/components/schemas/ListCalendarEventsParams"},{"$ref":"#/components/schemas/UpdateCalendarEventParams"},{"$ref":"#/components/schemas/CancelCalendarEventParams"},{"$ref":"#/components/schemas/RestoreCalendarEventParams"},{"$ref":"#/components/schemas/DeleteCalendarEventParams"},{"$ref":"#/components/schemas/ListCustomerFacingAgentsParams"},{"$ref":"#/components/schemas/ListAgentRulesParams"},{"$ref":"#/components/schemas/CreateAgentRuleParams"},{"$ref":"#/components/schemas/UpdateAgentRuleParams"},{"$ref":"#/components/schemas/DeleteAgentRuleParams"},{"$ref":"#/components/schemas/ListAgentProceduresParams"},{"$ref":"#/components/schemas/ListAgentReferencesParams"},{"$ref":"#/components/schemas/CreateAgentProcedureParams"},{"$ref":"#/components/schemas/UpdateAgentProcedureParams"},{"$ref":"#/components/schemas/DeleteAgentProcedureParams"},{"$ref":"#/components/schemas/ListHolidaysParams"},{"$ref":"#/components/schemas/CreateHolidayParams"},{"$ref":"#/components/schemas/UpdateHolidayParams"},{"$ref":"#/components/schemas/DeleteHolidayParams"},{"$ref":"#/components/schemas/GetScheduleParams"},{"$ref":"#/components/schemas/SubmitBusinessInfoParams"},{"$ref":"#/components/schemas/UpdateBusinessInfoParams"},{"$ref":"#/components/schemas/UpdateCustomerFacingConfigParams"},{"$ref":"#/components/schemas/GetAnalyticsSummaryParams"},{"$ref":"#/components/schemas/GetBookingPageSettingsParams"},{"$ref":"#/components/schemas/UpdateBookingPageSettingsParams"},{"$ref":"#/components/schemas/UpdateBookingPageAppearanceParams"},{"$ref":"#/components/schemas/GetBookingSlugStatusParams"},{"$ref":"#/components/schemas/SetBookingSlugParams"},{"$ref":"#/components/schemas/ListClientInteractionsParams"},{"$ref":"#/components/schemas/CreateClientInteractionParams"},{"$ref":"#/components/schemas/DeleteClientInteractionParams"},{"$ref":"#/components/schemas/ListLocationsParams"},{"$ref":"#/components/schemas/CreateLocationParams"},{"$ref":"#/components/schemas/UpdateLocationParams"},{"$ref":"#/components/schemas/DeleteLocationParams"},{"$ref":"#/components/schemas/LeaveMessageParams"},{"$ref":"#/components/schemas/ReportKnowledgeGapParams"},{"$ref":"#/components/schemas/OptInSmsReminderParams"},{"$ref":"#/components/schemas/OptOutSmsReminderParams"}],"title":"Params"}},"examples":[{"description":"","enabled":true,"name":"search_clients","params":{"smb_tool_type":"search_clients"},"type":"smb"}],"required":["name","params"],"title":"SMBToolConfig","x-fern-ignore":true},"SMSConversationInfo":{"type":"object","properties":{"direction":{"type":"string","enum":["inbound","outbound"],"title":"Direction"},"phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number Id"},"sms_user_phone_number":{"type":"string","title":"Sms User Phone Number"},"agent_phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Phone Number"}},"required":["direction","sms_user_phone_number"],"title":"SMSConversationInfo"},"SafetyCommonModel-Input":{"description":"Safety object that has the information of safety evaluations based on used voice.","type":"object","properties":{"ivc":{"$ref":"#/components/schemas/SafetyEvaluation"},"non_ivc":{"$ref":"#/components/schemas/SafetyEvaluation"}},"title":"SafetyCommonModel"},"SafetyCommonModel-Output":{"description":"Safety object that has the information of safety evaluations based on used voice.","type":"object","properties":{"ivc":{"$ref":"#/components/schemas/SafetyEvaluation"},"non_ivc":{"$ref":"#/components/schemas/SafetyEvaluation"}},"title":"SafetyCommonModel"},"SafetyEvaluation":{"description":"Safety evaluation of the agent. Prompt and first message is taken into account.\nThe unsafe reason is provided from the evaluation","type":"object","properties":{"is_unsafe":{"type":"boolean","default":false,"title":"Is Unsafe"},"llm_reason":{"type":"string","default":"","title":"Llm Reason"},"safety_prompt_version":{"type":"integer","default":0,"title":"Safety Prompt Version"},"matched_rule_id":{"type":"array","items":{"$ref":"#/components/schemas/SafetyRule"},"title":"Matched Rule Id"}},"title":"SafetyEvaluation"},"SafetyResponseModel":{"type":"object","properties":{"is_blocked_ivc":{"type":"boolean","default":false,"title":"Is Blocked Ivc"},"is_blocked_non_ivc":{"type":"boolean","default":false,"title":"Is Blocked Non Ivc"},"ignore_safety_evaluation":{"type":"boolean","default":false,"title":"Ignore Safety Evaluation"}},"title":"SafetyResponseModel"},"SafetyRule":{"type":"string","enum":["sexual_minors","forget_moderation","extremism","scam_fraud","political","self_harm","illegal_distribution_medical","sexual_adults","unknown"],"title":"SafetyRule"},"SampleConfigDBModel":{"type":"object","properties":{"is_sample":{"type":"boolean","default":false,"title":"Is Sample"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"parent_type":{"anyOf":[{"type":"string","enum":["read","collection"]},{"type":"null"}],"title":"Parent Type"},"chapter_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chapter Ids"}},"title":"SampleConfigDBModel"},"SampleResponseModel":{"type":"object","properties":{"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"file_name":{"description":"The name of the sample file.","type":"string","title":"File Name"},"mime_type":{"description":"The MIME type of the sample file.","type":"string","title":"Mime Type"},"size_bytes":{"description":"The size of the sample file in bytes.","type":"integer","title":"Size Bytes"},"hash":{"description":"The hash of the sample file.","type":"string","title":"Hash"},"duration_secs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Secs"},"remove_background_noise":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Remove Background Noise"},"has_isolated_audio":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Isolated Audio"},"has_isolated_audio_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Isolated Audio Preview"},"speaker_separation":{"anyOf":[{"$ref":"#/components/schemas/SpeakerSeparationResponseModel"},{"type":"null"}]},"trim_start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trim Start"},"trim_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trim End"}},"example":{"file_name":"sample.mp3","hash":"1234567890","mime_type":"audio/mpeg","sample_id":"DCwhRBWXzGAHq8TQ4Fs18","size_bytes":1000000},"required":[],"title":"SampleResponseModel","x-fern-type-name":"VoiceSample"},"SayNodeLiteralMessage-Input":{"type":"object","properties":{"type":{"type":"string","default":"literal","const":"literal","title":"Type"},"text":{"description":"Literal text message to be spoken by the agent.","type":"string","minLength":1,"title":"Text"}},"required":["text"],"title":"SayNodeLiteralMessage"},"SayNodeLiteralMessage-Output":{"type":"object","properties":{"type":{"type":"string","default":"literal","const":"literal","title":"Type"},"text":{"description":"Literal text message to be spoken by the agent.","type":"string","minLength":1,"title":"Text"}},"required":["type","text"],"title":"SayNodeLiteralMessage"},"SayNodePromptMessage-Input":{"type":"object","properties":{"type":{"type":"string","default":"prompt","const":"prompt","title":"Type"},"prompt":{"description":"LLM prompt describing what message should be generated.","type":"string","title":"Prompt"}},"required":["prompt"],"title":"SayNodePromptMessage"},"SayNodePromptMessage-Output":{"type":"object","properties":{"type":{"type":"string","default":"prompt","const":"prompt","title":"Type"},"prompt":{"description":"LLM prompt describing what message should be generated.","type":"string","title":"Prompt"}},"required":["type","prompt"],"title":"SayNodePromptMessage"},"ScheduleGroupSessionParams":{"description":"Schedule a single instance of a group service.\n\nThe session's duration is derived from the parent service so the assistant\nonly has to pin start time, the (optional) instructor / room, and the\nlocation. Participants register separately via\n``register_for_group_session``.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"schedule_group_session","const":"schedule_group_session","title":"Smb Tool Type"}},"title":"ScheduleGroupSessionParams"},"ScimGroupResponseModel":{"type":"object","properties":{"scim_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scim External Id"},"display_name":{"type":"string","title":"Display Name"},"created_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"updated_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At Unix"},"seat_type":{"anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}]}},"required":["scim_external_id","display_name"],"title":"ScimGroupResponseModel"},"ScopedAnalysisResult":{"type":"object","properties":{"scope":{"description":"The scope of the analysis. 'conversation' uses the full transcript; 'agent' uses only the portion where the defining agent was active.","$ref":"#/components/schemas/AnalysisScope"},"source_agent_id":{"type":"string","title":"Source Agent Id"},"source_branch_id":{"description":"Branch of the agent for this scoped block; disambiguates repeated agent_id.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Branch Id"},"evaluation_criteria_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"},"title":"Evaluation Criteria Results"},"data_collection_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"},"title":"Data Collection Results"},"successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"success_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Score"}},"required":["scope","source_agent_id","successful"],"title":"ScopedAnalysisResult"},"SearchClientsParams":{"description":"Search for clients by name, phone number, or email.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"search_clients","const":"search_clients","title":"Smb Tool Type"}},"title":"SearchClientsParams"},"SearchHighlightSegment":{"type":"object","properties":{"value":{"type":"string","title":"Value"},"is_hit":{"type":"boolean","title":"Is Hit"}},"required":["value","is_hit"],"title":"SearchHighlightSegment"},"SeatType":{"description":"Seat types for workspace members.","type":"string","enum":["workspace_admin","workspace_member","workspace_lite_member"],"title":"SeatType"},"SecretDependencyResourceType":{"type":"string","enum":["tools","agents","phone_numbers"],"title":"SecretDependencyResourceType"},"SecretDependencyType":{"type":"string","enum":["conversation_initiation_webhook"],"title":"SecretDependencyType"},"SectionSource":{"type":"object","properties":{"song_id":{"description":"The ID of the song to source the section from. You can find the song ID in the response headers when you generate a song.","type":"string","maxLength":100,"minLength":1,"title":"Song Id"},"range":{"description":"The range to extract from the source song.","$ref":"#/components/schemas/TimeRange"},"negative_ranges":{"description":"The ranges to exclude from the 'range'.","type":"array","items":{"$ref":"#/components/schemas/TimeRange"},"maxItems":10,"title":"Negative Ranges"}},"required":["song_id","range"],"title":"SectionSource"},"SegmentCreatePayload":{"type":"object","properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"translations":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Translations"}},"required":["start_time","end_time"],"title":"SegmentCreatePayload"},"SegmentCreateResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"},"new_segment":{"type":"string","title":"New Segment"}},"required":["version","new_segment"],"title":"SegmentCreateResponse"},"SegmentDeleteResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentDeleteResponse"},"SegmentDubResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentDubResponse"},"SegmentMigrationResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentMigrationResponse"},"SegmentSubtitleFrame":{"type":"object","properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"lines":{"type":"array","items":{"type":"string"},"title":"Lines"}},"required":["start_time","end_time","lines"],"title":"SegmentSubtitleFrame"},"SegmentTranscriptionResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentTranscriptionResponse"},"SegmentTranslationResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentTranslationResponse"},"SegmentUpdatePayload":{"type":"object","properties":{"start_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"End Time"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"}},"title":"SegmentUpdatePayload"},"SegmentUpdateResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentUpdateResponse"},"SegmentedJsonExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"segmented_json","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"SegmentedJsonExportOptions"},"SentimentAggregate":{"type":"object","properties":{"scored_conversation_count":{"type":"integer","title":"Scored Conversation Count"},"positive_count":{"type":"integer","title":"Positive Count"},"neutral_count":{"type":"integer","title":"Neutral Count"},"negative_count":{"type":"integer","title":"Negative Count"},"average_sentiment_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Sentiment Score"},"average_frustration_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Frustration Score"},"recent_scored_conversation_count":{"type":"integer","title":"Recent Scored Conversation Count"},"recent_positive_count":{"type":"integer","title":"Recent Positive Count"},"recent_neutral_count":{"type":"integer","title":"Recent Neutral Count"},"recent_negative_count":{"type":"integer","title":"Recent Negative Count"},"recent_average_sentiment_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Recent Average Sentiment Score"},"recent_average_frustration_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Recent Average Frustration Score"}},"required":["scored_conversation_count","positive_count","neutral_count","negative_count","average_sentiment_score","average_frustration_score","recent_scored_conversation_count","recent_positive_count","recent_neutral_count","recent_negative_count","recent_average_sentiment_score","recent_average_frustration_score"],"title":"SentimentAggregate"},"SentimentAnalysisSettings":{"type":"object","properties":{},"title":"SentimentAnalysisSettings"},"SetBookingSlugParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"set_booking_slug","const":"set_booking_slug","title":"Smb Tool Type"}},"title":"SetBookingSlugParams"},"SeverityId":{"description":"OCSF Severity levels.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/severity_id","type":"integer","enum":[0,1,2,3,4,5,6,99],"title":"SeverityId"},"SfxSourceContext":{"description":"Context for sound effect clips.","type":"object","properties":{"source_type":{"type":"string","default":"sfx","const":"sfx","title":"Source Type"},"sound_generation_history_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sound Generation History Item Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"generation_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Generation Config"}},"title":"SfxSourceContext"},"ShareOptionResponseModel":{"type":"object","properties":{"name":{"description":"The name of the principal.","type":"string","title":"Name"},"id":{"description":"The ID of the principal.","type":"string","title":"Id"},"type":{"description":"The type of the principal: user, group, or service account (under 'key').","type":"string","enum":["user","group","key"],"title":"Type"}},"required":["name","id","type"],"title":"ShareOptionResponseModel"},"SimilarVoice":{"type":"object","properties":{"voice_id":{"type":"string","title":"Voice Id"},"name":{"type":"string","title":"Name"},"category":{"$ref":"#/components/schemas/VOICE_CATEGORY"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"required":["voice_id","name","category"],"title":"SimilarVoice"},"SimilarVoicesForSpeakerResponse":{"type":"object","properties":{"voices":{"type":"array","items":{"$ref":"#/components/schemas/SimilarVoice"},"title":"Voices"}},"required":["voices"],"title":"SimilarVoicesForSpeakerResponse"},"SimulationLibrarySettings":{"type":"object","properties":{},"title":"SimulationLibrarySettings"},"SimulationTestModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]}},"title":"SimulationTestModel"},"SimulationToolMockBehaviorConfig":{"description":"Simulation/preview-side config: tools are identified by IDs, resolved to names at runtime.","type":"object","properties":{"mocking_strategy":{"description":"Which tools to mock: 'all' mocks every mockable tool, 'selected' mocks only those in mocked_tool_names/mocked_tool_ids, 'none' disables mocking.","default":"none","$ref":"#/components/schemas/MockingStrategy"},"fallback_strategy":{"description":"Behavior when no mock matches a tool call.","default":"raise_error","$ref":"#/components/schemas/MockNoMatchBehavior"},"mocked_tool_ids":{"description":"Tool IDs to mock. Resolved to tool names before being passed to the orchestrator.","type":"array","items":{"type":"string"},"title":"Mocked Tool Ids"}},"title":"SimulationToolMockBehaviorConfig"},"SingleLanguagesResponse":{"type":"object","properties":{"kind":{"description":"Indicates this response contains single languages (not source-to-destination pairs).","type":"string","default":"single","const":"single","title":"Kind"},"languages":{"description":"The list of available languages.","type":"array","items":{"$ref":"#/components/schemas/LanguageInfo"},"title":"Languages"}},"example":{"kind":"single","languages":[{"code":"en","label":"English"},{"code":"es-ES","label":"Spanish (Spain)"},{"code":"fr","label":"French"}]},"required":["languages"],"title":"SingleLanguagesResponse"},"SingleTestRunRequestModel":{"type":"object","properties":{"test_id":{"description":"ID of the test to run","type":"string","title":"Test Id"},"workflow_node_id":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"root_folder_id":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"},"root_folder_name":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Name"}},"required":["test_id"],"title":"SingleTestRunRequestModel"},"SingleUseTokenResponseModel":{"type":"object","properties":{"token":{"description":"A time bound single use token that expires after 15 minutes. Will be consumed on use.","type":"string","title":"Token"}},"example":{"token":"sutkn_1234567890"},"required":["token"],"title":"SingleUseTokenResponseModel"},"SingleUseTokenType":{"type":"string","enum":["realtime_scribe","batch_scribe","tts_websocket"],"title":"SingleUseTokenType"},"SkipTurnToolConfig":{"description":"Allows the agent to explicitly skip its turn.\n\nThis tool should be invoked by the LLM when the user indicates they would like\nto think or take a short pause before continuing the conversation—e.g. when\nthey say: \"Give me a second\", \"Let me think\", or \"One moment please\". After\ncalling this tool, the assistant should not speak until the user speaks\nagain, or another normal turn-taking condition is met. The tool itself has\nno parameters and performs no side-effects other than informing the backend\nthat the current turn generation is complete.","type":"object","properties":{"system_tool_type":{"type":"string","default":"skip_turn","const":"skip_turn","title":"System Tool Type"}},"title":"SkipTurnToolConfig"},"SkipTurnToolResponseModel":{"type":"object","properties":{"result_type":{"type":"string","default":"skip_turn_success","const":"skip_turn_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"title":"SkipTurnToolResponseModel"},"SlackBotAuthResponse":{"description":"Response model for the internal Slack BYO bot auth connection.","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"slack_bot_auth","const":"slack_bot_auth","title":"Auth Type"},"provider":{"type":"string","default":"Slack","const":"Slack","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","id"],"title":"SlackBotAuthResponse"},"SoftTimeoutConfig":{"description":"Configuration for soft timeout functionality during LLM response generation.","type":"object","properties":{"timeout_seconds":{"description":"Time in seconds before showing the predefined message while waiting for LLM response. Set to -1 to disable.","type":"number","default":-1,"title":"Timeout Seconds"},"message":{"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}}).","type":"string","default":"Hhmmmm...yeah.","maxLength":200,"minLength":1,"title":"Message","x-convai-client-override":true,"x-convai-language-override":true},"additional_soft_timeout_messages":{"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.","type":"array","items":{"type":"string"},"maxItems":7,"title":"Additional Soft Timeout Messages"},"use_llm_generated_message":{"description":"If enabled, the soft timeout message will be generated dynamically instead of using the static message.","type":"boolean","default":false,"title":"Use Llm Generated Message"},"randomize_fillers":{"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.","type":"boolean","default":false,"title":"Randomize Fillers"},"max_soft_timeouts_per_generation":{"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.","type":"integer","default":1,"maximum":8,"minimum":1,"title":"Max Soft Timeouts Per Generation"},"llm_generated_message_prompt_override":{"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}}).","anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"examples":["Output a SHORT neutral filler phrase (1-4 words MAX) acknowledging you heard the user."],"title":"Llm Generated Message Prompt Override"}},"example":{"message":"Hhmmmm...yeah.","timeout_seconds":2,"use_llm_generated_message":false},"title":"SoftTimeoutConfig"},"SoftTimeoutConfigOverride":{"type":"object","properties":{"message":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","x-convai-client-override":true,"x-convai-language-override":true}},"example":{"message":"Hhmmmm...yeah."},"title":"SoftTimeoutConfigOverride"},"SoftTimeoutConfigOverrideConfig":{"type":"object","properties":{"message":{"description":"Whether to allow overriding the message field.","type":"boolean","default":false,"title":"Message"}},"title":"SoftTimeoutConfigOverrideConfig"},"SoftTimeoutConfigWorkflowOverride":{"type":"object","properties":{"timeout_seconds":{"description":"Time in seconds before showing the predefined message while waiting for LLM response. Set to -1 to disable.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Timeout Seconds"},"message":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","x-convai-client-override":true,"x-convai-language-override":true},"additional_soft_timeout_messages":{"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.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Additional Soft Timeout Messages"},"use_llm_generated_message":{"description":"If enabled, the soft timeout message will be generated dynamically instead of using the static message.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Llm Generated Message"},"randomize_fillers":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Randomize Fillers"},"max_soft_timeouts_per_generation":{"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.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Soft Timeouts Per Generation"},"llm_generated_message_prompt_override":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Output a SHORT neutral filler phrase (1-4 words MAX) acknowledging you heard the user."],"title":"Llm Generated Message Prompt Override"}},"example":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"title":"SoftTimeoutConfigWorkflowOverride"},"SongMetadata":{"type":"object","properties":{"title":{"description":"The title of the song","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"description":"The description of the song","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"description":"The genres of the song","type":"array","items":{"type":"string"},"title":"Genres"},"languages":{"description":"The languages of the song","type":"array","items":{"type":"string"},"title":"Languages"},"is_explicit":{"description":"Whether the song is explicit","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Explicit"}},"example":{"description":"My Song Description","genres":["pop","rock","jazz"],"is_explicit":false,"languages":["en","fr"],"title":"My Song"},"required":["title","description","genres","languages","is_explicit"],"title":"SongMetadata"},"SongSection":{"type":"object","properties":{"section_name":{"description":"The name of the section. Must be between 1 and 100 characters.","type":"string","maxLength":100,"minLength":1,"title":"Section Name"},"positive_local_styles":{"description":"The styles and musical directions that should be present in this section. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Local Styles"},"negative_local_styles":{"description":"The styles and musical directions that should not be present in this section. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Local Styles"},"duration_ms":{"description":"The duration of the section in milliseconds. Must be between 3000ms and 120000ms.","type":"integer","maximum":120000,"minimum":3000,"title":"Duration Ms"},"lines":{"description":"The lyrics of the section. Max 30 lines per section and max 200 characters per line.","type":"array","items":{"type":"string","maxLength":200},"maxItems":30,"title":"Lines"},"source_from":{"description":"Optional source to extract the section from. Used for inpainting.","anyOf":[{"$ref":"#/components/schemas/SectionSource"},{"type":"null"}]}},"required":["section_name","positive_local_styles","negative_local_styles","duration_ms","lines"],"title":"SongSection"},"SongSourceContext":{"type":"object","properties":{"source_type":{"type":"string","default":"song","const":"song","title":"Source Type"},"song_id":{"type":"string","title":"Song Id"},"chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"type":"array","items":{"type":"string"},"title":"Genres"},"languages":{"type":"array","items":{"type":"string"},"title":"Languages"},"is_explicit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Explicit"},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"generation_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Generation Settings"}},"required":["song_id"],"title":"SongSourceContext"},"SortDirection":{"type":"string","enum":["asc","desc"],"title":"SortDirection"},"SpeakerAudioResponseModel":{"type":"object","properties":{"audio_base_64":{"description":"The base64 encoded audio.","type":"string","title":"Audio Base 64"},"media_type":{"description":"The media type of the audio.","type":"string","title":"Media Type"},"duration_secs":{"description":"The duration of the audio in seconds.","type":"number","title":"Duration Secs"}},"example":{"audio_base_64":"audio_base_64","duration_secs":5,"media_type":"audio/mpeg"},"required":["audio_base_64","media_type","duration_secs"],"title":"SpeakerAudioResponseModel"},"SpeakerCreatedResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"},"speaker_id":{"type":"string","title":"Speaker Id"}},"required":["version","speaker_id"],"title":"SpeakerCreatedResponse"},"SpeakerResponseModel":{"type":"object","properties":{"speaker_id":{"description":"The ID of the speaker.","type":"string","title":"Speaker Id"},"duration_secs":{"description":"The duration of the speaker segment in seconds.","type":"number","title":"Duration Secs"},"utterances":{"description":"The utterances of the speaker.","anyOf":[{"items":{"$ref":"#/components/schemas/UtteranceResponseModel"},"type":"array"},{"type":"null"}],"title":"Utterances"}},"example":{"duration_secs":5,"speaker_id":"DCwhRBWXzGAHq8TQ4Fs18"},"required":["speaker_id","duration_secs"],"title":"SpeakerResponseModel"},"SpeakerSegment":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"text":{"type":"string","title":"Text"},"subtitles":{"type":"array","items":{"$ref":"#/components/schemas/SegmentSubtitleFrame"},"title":"Subtitles"},"dubs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DubbedSegment"},"title":"Dubs"}},"required":["id","start_time","end_time","text","subtitles","dubs"],"title":"SpeakerSegment"},"SpeakerSeparationResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"},"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"status":{"description":"The status of the speaker separation.","type":"string","enum":["not_started","pending","completed","failed"],"title":"Status"},"speakers":{"description":"The speakers of the sample.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/SpeakerResponseModel"},"type":"object"},{"type":"null"}],"title":"Speakers"},"selected_speaker_ids":{"description":"The IDs of the selected speakers.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Selected Speaker Ids"}},"example":{"sample_id":"DCwhRBWXzGAHq8TQ4Fs18","status":"not_started","voice_id":"DCwhRBWXzGAHq8TQ4Fs18"},"required":["voice_id","sample_id","status"],"title":"SpeakerSeparationResponseModel"},"SpeakerTrack":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"media_ref":{"$ref":"#/components/schemas/DubbingMediaReference"},"speaker_name":{"type":"string","title":"Speaker Name"},"voices":{"type":"object","additionalProperties":{"type":"string"},"title":"Voices"},"segments":{"type":"array","items":{"type":"string"},"title":"Segments"}},"required":["id","media_ref","speaker_name","voices","segments"],"title":"SpeakerTrack"},"SpeakerUpdatedResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SpeakerUpdatedResponse"},"SpeechEngineConfig":{"type":"object","properties":{"ws_url":{"description":"The WebSocket URL for the transcript server","type":"string","title":"Ws Url"},"request_headers":{"description":"Headers to include in the WebSocket connection request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"}]},"title":"Request Headers"}},"required":["ws_url"],"title":"SpeechEngineConfig"},"SpeechEngineConversationInitiationClientDataConfig":{"type":"object","properties":{"first_message":{"description":"Whether the first message can be overridden by the client","type":"boolean","default":false,"title":"First Message"}},"title":"SpeechEngineConversationInitiationClientDataConfig"},"SpeechEngineResponse":{"type":"object","properties":{"speech_engine_id":{"description":"The speech engine resource ID","type":"string","title":"Speech Engine Id"},"name":{"description":"Human-readable name for the speech engine","type":"string","title":"Name"},"speech_engine":{"description":"WebSocket connection settings for the upstream transcript server","$ref":"#/components/schemas/SpeechEngineConfig"},"asr":{"description":"Automatic speech recognition configuration","$ref":"#/components/schemas/ASRConversationalConfig"},"tts":{"description":"Text-to-speech output configuration","$ref":"#/components/schemas/TTSConversationalConfig-Output"},"turn":{"description":"Turn detection configuration","$ref":"#/components/schemas/BaseTurnConfig"},"conversation":{"description":"Conversation-level settings including client events and duration limits","$ref":"#/components/schemas/ConversationConfig-Output"},"privacy":{"description":"Privacy settings controlling recording, retention, and PII handling","$ref":"#/components/schemas/PrivacyConfig-Output"},"call_limits":{"description":"Concurrency and daily conversation limits for this speech engine","$ref":"#/components/schemas/AgentCallLimits"},"language":{"description":"ISO language code used by the speech engine (e.g. 'en')","type":"string","title":"Language"},"tags":{"description":"Arbitrary tags for categorization and filtering","type":"array","items":{"type":"string"},"title":"Tags"},"overrides":{"description":"Override settings the client may set during conversation initiation","$ref":"#/components/schemas/SpeechEngineConversationInitiationClientDataConfig"},"metadata":{"description":"Creation and update timestamps with source information","$ref":"#/components/schemas/AgentMetadataDBModel"},"access_info":{"description":"The access information of the speech engine for the user","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]}},"example":{"asr":{"keywords":[],"provider":"elevenlabs","quality":"high","user_input_audio_format":"pcm_16000"},"call_limits":{"agent_concurrency_limit":-1,"bursting_enabled":true,"daily_limit":100000},"conversation":{"client_events":["audio","interruption","agent_response","user_transcript"],"max_duration_seconds":600},"language":"en","metadata":{"created_at_unix_secs":1714000000,"created_from":"api","last_updated_from":"api","updated_at_unix_secs":1714000000},"name":"My Speech Engine","overrides":{"first_message":false},"privacy":{"apply_to_existing_conversations":false,"delete_audio":false,"delete_transcript_and_pii":false,"record_voice":true,"retention_days":-1,"zero_retention_mode":false},"speech_engine":{"request_headers":{},"ws_url":"wss://example.com/transcript"},"speech_engine_id":"seng_3701k3ttaq12ewp8b7qv5rfyszkz","tags":["production","v1"],"tts":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_flash_v2","optimize_streaming_latency":3,"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"mode":"turn","silence_end_call_timeout":-1,"turn_eagerness":"normal","turn_timeout":7}},"required":["speech_engine_id","name","speech_engine","asr","tts","turn","conversation","privacy","call_limits","language","tags","overrides","metadata"],"title":"SpeechEngineResponse"},"SpeechEngineSummaryResponse":{"type":"object","properties":{"speech_engine_id":{"description":"The speech engine resource ID","type":"string","title":"Speech Engine Id"},"name":{"description":"Human-readable name for the speech engine","type":"string","title":"Name"},"created_at_unix_secs":{"description":"Creation time in Unix seconds","type":"integer","title":"Created At Unix Secs"},"tags":{"description":"Arbitrary tags for categorization and filtering","type":"array","items":{"type":"string"},"title":"Tags"},"access_info":{"description":"The access information of the speech engine for the user","$ref":"#/components/schemas/ResourceAccessInfo"}},"example":{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"created_at_unix_secs":1714000000,"name":"My Speech Engine","speech_engine_id":"seng_3701k3ttaq12ewp8b7qv5rfyszkz","tags":["production","v1"]},"required":["speech_engine_id","name","created_at_unix_secs","tags","access_info"],"title":"SpeechEngineSummaryResponse"},"SpeechHistoryItemResponseModel":{"type":"object","properties":{"history_item_id":{"description":"The ID of the history item.","type":"string","title":"History Item Id"},"request_id":{"description":"The ID of the request.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"voice_id":{"description":"The ID of the voice used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"model_id":{"description":"The ID of the model.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"voice_name":{"description":"The name of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Name"},"voice_category":{"description":"The category of the voice. Either 'premade', 'cloned', 'generated' or 'professional'.","anyOf":[{"type":"string","enum":["premade","cloned","generated","professional"]},{"type":"null"}],"title":"Voice Category"},"text":{"description":"The text used to generate the audio item.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"date_unix":{"description":"Unix timestamp of when the item was created.","type":"integer","title":"Date Unix"},"character_count_change_from":{"description":"The character count change from.","type":"integer","title":"Character Count Change From"},"character_count_change_to":{"description":"The character count change to.","type":"integer","title":"Character Count Change To"},"content_type":{"description":"The content type of the generated item.","type":"string","title":"Content Type"},"state":[{"x-fern-type-name":"SpeechHistoryState"}],"settings":{"description":"The settings of the history item.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"},"share_link_id":{"description":"The ID of the share link.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Link Id"},"source":{"description":"The source of the history item. Either TTS (text to speech), STS (speech to text), AN (audio native), Projects, Dubbing, PlayAPI, PD (pronunciation dictionary) or ConvAI (Agents Platform).","anyOf":[{"type":"string","enum":["TTS","STS","Projects","PD","AN","Dubbing","PlayAPI","ConvAI","VoiceGeneration","InVPC","Flows"]},{"type":"null"}],"title":"Source"},"alignments":{"description":"The alignments of the history item.","anyOf":[{"$ref":"#/components/schemas/HistoryAlignmentsResponseModel"},{"type":"null"}]},"dialogue":{"description":"The dialogue (voice and text pairs) used to generate the audio item. If this is set then the top level `text` and `voice_id` fields will be empty.","anyOf":[{"items":{"$ref":"#/components/schemas/DialogueInputResponseModel"},"type":"array"},{"type":"null"}],"title":"Dialogue"},"output_format":{"description":"The output format the audio was originally generated in.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Format"}},"example":{"character_count_change_from":17189,"character_count_change_to":17231,"content_type":"audio/mpeg","date_unix":1714650306,"history_item_id":"ja9xsmfGhxYcymxGcOGB","model_id":"eleven_multilingual_v2","request_id":"BF0BZg4IwLGBlaVjv9Im","settings":{"similarity_boost":0.5,"stability":0.71,"style":0,"use_speaker_boost":true},"source":"TTS","state":"created","text":"Hello, world!","voice_category":"premade","voice_id":"21m00Tcm4TlvDq8ikWAM","voice_name":"Rachel"},"required":["history_item_id","date_unix","character_count_change_from","character_count_change_to","content_type","state"],"title":"SpeechHistoryItemResponseModel","x-fern-type-name":"SpeechHistoryItemResponse"},"SpeechToTextCharacterResponseModel":{"type":"object","properties":{"text":{"description":"The character that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the character in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start"},"end":{"description":"The end time of the character in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"End"}},"example":{"end":0.1,"start":0,"text":"H"},"required":["text"],"title":"SpeechToTextCharacterResponseModel"},"SpeechToTextChunkResponseModel":{"description":"Chunk-level detail of the transcription with timing information.","type":"object","properties":{"language_code":{"description":"The detected language code (e.g. 'eng' for English).","type":"string","title":"Language Code"},"language_probability":{"description":"The confidence score of the language detection (0 to 1).","type":"number","title":"Language Probability"},"text":{"description":"The raw text of the transcription.","type":"string","title":"Text"},"words":{"description":"List of words with their timing information.","type":"array","items":{"$ref":"#/components/schemas/SpeechToTextWordResponseModel"},"title":"Words"},"channel_index":{"description":"The channel index this transcript belongs to (for multichannel audio).","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Channel Index"},"additional_formats":{"description":"Requested additional formats of the transcript.","anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AdditionalFormatResponseModel"},{"type":"null"}]},"type":"array"},{"type":"null"}],"title":"Additional Formats"},"transcription_id":{"description":"The transcription ID of the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcription Id"},"entities":{"description":"List of detected entities with their text, type, and character positions in the transcript.","anyOf":[{"items":{"$ref":"#/components/schemas/DetectedEntity"},"type":"array"},{"type":"null"}],"title":"Entities"},"audio_duration_secs":{"description":"The duration of the audio that was transcribed in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Audio Duration Secs"}},"example":{"language_code":"en","language_probability":0.98,"text":"Hello world!","words":[{"end":0.5,"logprob":-0.124,"speaker_id":"speaker_1","start":0,"text":"Hello","type":"word"},{"end":0.5,"logprob":0,"speaker_id":"speaker_1","start":0.5,"text":" ","type":"spacing"},{"end":1.2,"logprob":-0.089,"speaker_id":"speaker_1","start":0.5,"text":"world!","type":"word"}]},"required":["language_code","language_probability","text","words"],"title":"SpeechToTextChunkResponseModel"},"SpeechToTextWebhookResponseModel":{"type":"object","properties":{"message":{"description":"The message of the webhook response.","type":"string","title":"Message"},"request_id":{"description":"The request ID of the webhook response.","type":"string","title":"Request Id"},"transcription_id":{"description":"The transcription ID of the webhook response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcription Id"}},"example":{"message":"Request accepted. Transcription result will be sent to the webhook endpoint.","request_id":"1234567890"},"required":["message","request_id"],"title":"SpeechToTextWebhookResponseModel"},"SpeechToTextWordResponseModel":{"description":"Word-level detail of the transcription with timing information.","type":"object","properties":{"text":{"description":"The word or sound that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the word or sound in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start"},"end":{"description":"The end time of the word or sound in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"End"},"type":{"description":"The type of the word or sound. 'audio_event' is used for non-word sounds like laughter or footsteps.","type":"string","enum":["word","spacing","audio_event"],"title":"Type"},"speaker_id":{"description":"Unique identifier for the speaker of this word.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Id"},"logprob":{"description":"The log of the probability with which this word was predicted. Logprobs are in range [-infinity, 0], higher logprobs indicate a higher confidence the model has in its predictions.","type":"number","title":"Logprob"},"characters":{"description":"The characters that make up the word and their timing information.","anyOf":[{"items":{"$ref":"#/components/schemas/SpeechToTextCharacterResponseModel"},"type":"array"},{"type":"null"}],"title":"Characters"},"channel_index":{"description":"The channel this word was spoken on (for multichannel audio). Null for single-channel transcriptions.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Channel Index"}},"example":{"characters":[{"end":0.1,"start":0,"text":"H"},{"end":0.2,"start":0.1,"text":"e"},{"end":0.3,"start":0.2,"text":"l"},{"end":0.4,"start":0.3,"text":"l"},{"end":0.5,"start":0.4,"text":"o"}],"end":0.5,"logprob":-0.124,"speaker_id":"speaker_1","start":0,"text":"Hello","type":"word"},"required":["text","type","logprob"],"title":"SpeechToTextWordResponseModel"},"SpellingPatience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities.","type":"string","default":"auto","enum":["auto","off"],"title":"SpellingPatience"},"SrtExportOptions":{"type":"object","properties":{"max_characters_per_line":{"default":42,"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Characters Per Line"},"include_speakers":{"type":"boolean","default":false,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"srt","title":"Format"},"segment_on_silence_longer_than_s":{"default":0.8,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"default":4,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"default":84,"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"SrtExportOptions"},"StartPVCVoiceTrainingResponseModel":{"type":"object","properties":{"status":{"description":"The status of the start PVC voice training request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"StartPVCVoiceTrainingResponseModel"},"StartProcedureToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"start_procedure","const":"start_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Input"},"title":"Procedures"}},"title":"StartProcedureToolConfig"},"StartProcedureToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"start_procedure","const":"start_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Output"},"title":"Procedures"}},"title":"StartProcedureToolConfig"},"StartProcedureToolErrorStatus":{"type":"string","enum":["not_found","invalid_name","already_active"]},"StartSpeakerSeparationResponseModel":{"type":"object","properties":{"status":{"description":"The status of the start speaker seperation request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"StartSpeakerSeparationResponseModel"},"StatusId":{"description":"OCSF Status levels.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/status_id","type":"integer","enum":[0,1,2,99],"title":"StatusId"},"StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"voice_segments":{"description":"Voice segments for the audio","type":"array","items":{"$ref":"#/components/schemas/VoiceSegment"},"title":"Voice Segments"}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]},"audio_base64":"base64_encoded_audio_chunk","normalized_alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]},"voice_segments":[{"character_end_index":2,"character_start_index":0,"dialogue_input_index":0,"end_time_seconds":0.2,"start_time_seconds":0,"voice_id":"VEDscrYI8uIMttlO2Ztu"}]},"required":["audio_base64","voice_segments"],"title":"StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel"},"StreamingAudioChunkWithTimestampsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]},"audio_base64":"base64_encoded_audio_chunk","normalized_alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]}},"required":["audio_base64"],"title":"StreamingAudioChunkWithTimestampsResponseModel","x-fern-type-name":"StreamingAudioChunkWithTimestampsResponse"},"StudioAgentSettingsModel":{"type":"object","properties":{"tool_settings":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StudioAgentToolSettingsModel"},"title":"Tool Settings"}},"title":"StudioAgentSettingsModel"},"StudioAgentToolSettingsModel":{"type":"object","properties":{"skip_confirmation":{"type":"boolean","default":false,"title":"Skip Confirmation"}},"title":"StudioAgentToolSettingsModel"},"StudioClipReference":{"type":"object","properties":{"project_id":{"type":"string","title":"Project Id"},"chapter_id":{"type":"string","title":"Chapter Id"},"clip_type":{"type":"string","enum":["video","image","external_audio","tts_node"],"title":"Clip Type"},"clip_id":{"type":"string","title":"Clip Id"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"required":["project_id","chapter_id","clip_type","clip_id"],"title":"StudioClipReference"},"StudioTextStyleOutlineModel":{"type":"object","properties":{"enabled":{"type":"boolean","title":"Enabled"},"color":{"type":"string","title":"Color"},"opacity":{"type":"number","title":"Opacity"},"width":{"type":"number","title":"Width"}},"required":["enabled","color","opacity","width"],"title":"StudioTextStyleOutlineModel"},"StudioTextStyleShadowModel":{"type":"object","properties":{"enabled":{"type":"boolean","title":"Enabled"},"color":{"type":"string","title":"Color"},"opacity":{"type":"number","title":"Opacity"},"blur":{"type":"number","title":"Blur"},"offset_x":{"type":"number","title":"Offset X"},"offset_y":{"type":"number","title":"Offset Y"}},"required":["enabled","color","opacity","blur","offset_x","offset_y"],"title":"StudioTextStyleShadowModel"},"SubAgent-Input":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]}},"required":["agent_id","description"],"title":"SubAgent"},"SubAgent-Output":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]}},"required":["agent_id","description"],"title":"SubAgent"},"SubmitBusinessInfoParams":{"description":"Finalize the onboarding interview: create a text knowledge source and mark done.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"submit_business_info","const":"submit_business_info","title":"Smb Tool Type"}},"title":"SubmitBusinessInfoParams"},"SubmitOrderResponse":{"type":"object","properties":{"order_id":{"description":"The ID of the submitted order.","$ref":"#/components/schemas/OrderId"},"state":{"description":"The current state of the order after submission.","$ref":"#/components/schemas/OrderState"},"submitted_at":{"description":"The timestamp when the order was submitted.","type":"string","format":"date-time","title":"Submitted At"}},"example":{"order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","state":"submitted","submitted_at":"2025-03-15T10:30:00Z"},"required":["order_id","state","submitted_at"],"title":"SubmitOrderResponse"},"SubscriptionResponseModel":{"type":"object","properties":{"tier":{"description":"The tier of the user's subscription.","type":"string","title":"Tier"},"character_count":{"description":"The number of characters used by the user.","type":"integer","title":"Character Count"},"character_limit":{"description":"The maximum number of characters allowed in the current billing period.","type":"integer","title":"Character Limit"},"max_character_limit_extension":{"description":"Deprecated: use `max_credit_limit_extension`. Maximum number of characters that the character limit can be exceeded by. Managed by the workspace admin.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Character Limit Extension"},"max_credit_limit_extension":{"description":"Maximum number of credits that the credit limit can be exceeded by. Managed by the workspace admin. `\"unlimited\"` means no cap, `0` means usage-based billing is disabled.","anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"}],"title":"Max Credit Limit Extension"},"can_extend_character_limit":{"description":"Whether the workspace is entitled to enter overages (usage-based billing).","type":"boolean","title":"Can Extend Character Limit"},"allowed_to_extend_character_limit":{"description":"Deprecated: use `max_credit_limit_extension != 0`. Whether the user is allowed to extend their character limit.","type":"boolean","title":"Allowed To Extend Character Limit"},"next_character_count_reset_unix":{"description":"The Unix timestamp of the next character count reset.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Character Count Reset Unix"},"voice_slots_used":{"description":"The number of voice slots used by the user.","type":"integer","title":"Voice Slots Used"},"professional_voice_slots_used":{"description":"The number of professional voice slots used. For consolidated billing this is the group-wide count across all workspaces in the group; see professional_voice_slots_used_in_workspace for the current workspace only.","type":"integer","title":"Professional Voice Slots Used"},"professional_voice_slots_used_in_workspace":{"description":"The number of professional voice slots used in the current workspace. For consolidated billing, professional_voice_slots_used counts across all workspaces in the group, while this counts only the current workspace.","type":"integer","title":"Professional Voice Slots Used In Workspace"},"voice_limit":{"description":"The maximum number of voice slots allowed for the user.","type":"integer","title":"Voice Limit"},"max_voice_add_edits":{"description":"The maximum number of voice add/edits allowed for the user.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Voice Add Edits"},"voice_add_edit_counter":{"description":"The number of voice add/edits used by the user.","type":"integer","title":"Voice Add Edit Counter"},"professional_voice_limit":{"description":"The maximum number of professional voices allowed for the user.","type":"integer","title":"Professional Voice Limit"},"can_extend_voice_limit":{"description":"Whether the user can extend their voice limit.","type":"boolean","title":"Can Extend Voice Limit"},"can_use_instant_voice_cloning":{"description":"Whether the user can use instant voice cloning.","type":"boolean","title":"Can Use Instant Voice Cloning"},"can_use_professional_voice_cloning":{"description":"Whether the user can use professional voice cloning.","type":"boolean","title":"Can Use Professional Voice Cloning"},"currency":{"description":"The currency of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}]},"current_overage":{"description":"The current usage-based overage cost.","$ref":"#/components/schemas/Price"},"status":{"description":"The status of the user's subscription.","$ref":"#/components/schemas/SubscriptionStatusType","x-fern-type-name":"SubscriptionStatus"},"billing_period":{"description":"The billing period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/BillingPeriod"},{"type":"null"}]},"character_refresh_period":{"description":"The character refresh period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/CharacterRefreshPeriod"},{"type":"null"}]}},"example":{"allowed_to_extend_character_limit":false,"billing_period":"monthly_period","can_extend_character_limit":false,"can_extend_voice_limit":false,"can_use_instant_voice_cloning":true,"can_use_professional_voice_cloning":true,"character_count":17231,"character_limit":100000,"character_refresh_period":"monthly_period","currency":"usd","current_overage":{"amount":"0","currency":"usd"},"max_character_limit_extension":10000,"max_credit_limit_extension":10000,"max_voice_add_edits":230,"next_character_count_reset_unix":1738356858,"professional_voice_limit":1,"professional_voice_slots_used":0,"professional_voice_slots_used_in_workspace":0,"status":"free","tier":"trial","voice_add_edit_counter":212,"voice_limit":120,"voice_slots_used":1},"required":["tier","character_count","character_limit","max_character_limit_extension","max_credit_limit_extension","can_extend_character_limit","allowed_to_extend_character_limit","voice_slots_used","professional_voice_slots_used","professional_voice_slots_used_in_workspace","voice_limit","voice_add_edit_counter","professional_voice_limit","can_extend_voice_limit","can_use_instant_voice_cloning","can_use_professional_voice_cloning","current_overage","status"],"title":"SubscriptionResponseModel","x-fern-type-name":"SubscriptionResponse"},"SubscriptionStatusType":{"type":"string","enum":["trialing","active","incomplete","past_due","free","free_disabled"],"title":"SubscriptionStatusType"},"SubtitleOrderItemRequest":{"type":"object","properties":{"kind":{"description":"The type of order item.","type":"string","default":"subtitles","const":"subtitles","title":"Kind"},"media_ids":{"description":"The IDs of the uploaded media files to generate subtitles for.","type":"array","items":{"$ref":"#/components/schemas/MediaId"},"title":"Media Ids"},"source_language":{"description":"The language code of the source media (e.g. 'en', 'es').","type":"string","title":"Source Language"},"destination_languages":{"description":"List of target language codes. Subtitles will be generated for each media file in each destination language.","type":"array","items":{"type":"string"},"title":"Destination Languages"},"cue_options":{"description":"Formatting options for subtitle cues such as duration, line count, and character limits.","$ref":"#/components/schemas/CueOptionsRequest"},"sdh":{"description":"Whether subtitles should use SDH format, which includes descriptions for deaf and hard-of-hearing viewers.","type":"boolean","default":false,"title":"Sdh"},"instructions":{"description":"Optional free-text instructions for the subtitling team.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"}},"example":{"cue_options":{"max_chars_per_line":42,"max_duration_ms":7000,"max_lines_per_cue":2,"min_duration_ms":1000},"destination_languages":["hi","fr-FR","de"],"instructions":"Keep reading speed moderate; preserve humor in idioms.","kind":"subtitles","media_ids":["prodmedia_01jgatk6h0fwxrtbjade61yqhx","prodmedia_01jgb2zd68f8f9tfvbb968wb8z"],"sdh":false,"source_language":"en"},"required":["media_ids","source_language","destination_languages"],"title":"SubtitleOrderItemRequest"},"SuggestedAudioTag":{"type":"object","properties":{"tag":{"description":"Audio tag to use (for best performance, 1-2 words, e.g., 'happy', 'excited')","type":"string","maxLength":30,"minLength":1,"title":"Tag"},"description":{"description":"Optional description of when to use this tag","anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Description"}},"required":["tag"],"title":"SuggestedAudioTag"},"SupportedVoice":{"type":"object","properties":{"label":{"type":"string","minLength":1,"title":"Label"},"voice_id":{"type":"string","minLength":1,"title":"Voice Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"model_family":{"anyOf":[{"$ref":"#/components/schemas/TTSModelFamily"},{"type":"null"}]},"optimize_streaming_latency":{"anyOf":[{"$ref":"#/components/schemas/TTSOptimizeStreamingLatency"},{"type":"null"}]},"stability":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"},"speed":{"anyOf":[{"type":"number","maximum":1.2,"minimum":0.7},{"type":"null"}],"title":"Speed"},"similarity_boost":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Similarity Boost"}},"required":["label","voice_id"],"title":"SupportedVoice"},"SystemEvaluationCriteria":{"type":"object","properties":{"user_sentiment_score":{"type":"number","maximum":1,"minimum":-1,"title":"User Sentiment Score"},"user_frustration_score":{"type":"number","maximum":1,"minimum":0,"title":"User Frustration Score"}},"required":["user_sentiment_score","user_frustration_score"],"title":"SystemEvaluationCriteria"},"SystemToolConfig-Input":{"description":"A system tool is a tool that is used to call a system method in the server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"system","const":"system","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"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.","type":"string","default":"","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete.","type":"integer","default":20,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"params":{"discriminator":{"propertyName":"system_tool_type","mapping":{"end_call":"#/components/schemas/EndCallToolConfig","end_procedure":"#/components/schemas/EndProcedureToolConfig-Input","knowledge_base_rag":"#/components/schemas/KnowledgeBaseRagToolConfig","language_detection":"#/components/schemas/LanguageDetectionToolConfig","play_keypad_touch_tone":"#/components/schemas/PlayDTMFToolConfig","run_subagent":"#/components/schemas/RunSubagentToolConfig-Input","skip_turn":"#/components/schemas/SkipTurnToolConfig","start_procedure":"#/components/schemas/StartProcedureToolConfig-Input","transfer_to_agent":"#/components/schemas/TransferToAgentToolConfig-Input","transfer_to_number":"#/components/schemas/TransferToNumberToolConfig-Input","voicemail_detection":"#/components/schemas/VoicemailDetectionToolConfig"}},"oneOf":[{"$ref":"#/components/schemas/EndCallToolConfig"},{"$ref":"#/components/schemas/LanguageDetectionToolConfig"},{"$ref":"#/components/schemas/TransferToAgentToolConfig-Input"},{"$ref":"#/components/schemas/TransferToNumberToolConfig-Input"},{"$ref":"#/components/schemas/SkipTurnToolConfig"},{"$ref":"#/components/schemas/PlayDTMFToolConfig"},{"$ref":"#/components/schemas/VoicemailDetectionToolConfig"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolConfig"},{"$ref":"#/components/schemas/StartProcedureToolConfig-Input"},{"$ref":"#/components/schemas/EndProcedureToolConfig-Input"},{"$ref":"#/components/schemas/RunSubagentToolConfig-Input"}],"title":"Params"}},"examples":[{"description":"","name":"end_call","params":{"system_tool_type":"end_call"},"type":"system"},{"description":"Custom description for specific use case","name":"transfer_to_agent","params":{"system_tool_type":"transfer_to_agent","transfers":[]},"type":"system"}],"required":["name","params"],"title":"SystemToolConfig"},"SystemToolConfig-Output":{"description":"A system tool is a tool that is used to call a system method in the server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"system","const":"system","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"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.","type":"string","default":"","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete.","type":"integer","default":20,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"params":{"discriminator":{"propertyName":"system_tool_type","mapping":{"end_call":"#/components/schemas/EndCallToolConfig","end_procedure":"#/components/schemas/EndProcedureToolConfig-Output","knowledge_base_rag":"#/components/schemas/KnowledgeBaseRagToolConfig","language_detection":"#/components/schemas/LanguageDetectionToolConfig","play_keypad_touch_tone":"#/components/schemas/PlayDTMFToolConfig","run_subagent":"#/components/schemas/RunSubagentToolConfig-Output","skip_turn":"#/components/schemas/SkipTurnToolConfig","start_procedure":"#/components/schemas/StartProcedureToolConfig-Output","transfer_to_agent":"#/components/schemas/TransferToAgentToolConfig-Output","transfer_to_number":"#/components/schemas/TransferToNumberToolConfig-Output","voicemail_detection":"#/components/schemas/VoicemailDetectionToolConfig"}},"oneOf":[{"$ref":"#/components/schemas/EndCallToolConfig"},{"$ref":"#/components/schemas/LanguageDetectionToolConfig"},{"$ref":"#/components/schemas/TransferToAgentToolConfig-Output"},{"$ref":"#/components/schemas/TransferToNumberToolConfig-Output"},{"$ref":"#/components/schemas/SkipTurnToolConfig"},{"$ref":"#/components/schemas/PlayDTMFToolConfig"},{"$ref":"#/components/schemas/VoicemailDetectionToolConfig"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolConfig"},{"$ref":"#/components/schemas/StartProcedureToolConfig-Output"},{"$ref":"#/components/schemas/EndProcedureToolConfig-Output"},{"$ref":"#/components/schemas/RunSubagentToolConfig-Output"}],"title":"Params"}},"examples":[{"description":"","name":"end_call","params":{"system_tool_type":"end_call"},"type":"system"},{"description":"Custom description for specific use case","name":"transfer_to_agent","params":{"system_tool_type":"transfer_to_agent","transfers":[]},"type":"system"}],"required":["name","params"],"title":"SystemToolConfig"},"TTSConversationalConfig-Input":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","default":"eleven_flash_v2","$ref":"#/components/schemas/TTSConversationalModel","x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","type":"string","default":"cjVigY5qzO86Huf0OWal","minLength":0,"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","type":"boolean","default":true,"title":"Expressive Mode"},"suggested_audio_tags":{"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.","type":"array","items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"maxItems":20,"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","default":"pcm_16000","$ref":"#/components/schemas/TTSOutputFormat"},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","default":3,"$ref":"#/components/schemas/TTSOptimizeStreamingLatency","deprecated":true},"stability":{"description":"The stability of generated speech","type":"number","default":0.5,"maximum":1,"minimum":0,"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","type":"number","default":1,"maximum":1.2,"minimum":0.7,"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","type":"number","default":0.8,"maximum":1,"minimum":0,"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","default":"system_prompt","$ref":"#/components/schemas/TextNormalisationType"},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","type":"boolean","default":true,"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfig"},"TTSConversationalConfig-Output":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","default":"eleven_flash_v2","$ref":"#/components/schemas/TTSConversationalModel","x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","type":"string","default":"cjVigY5qzO86Huf0OWal","minLength":0,"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","type":"boolean","default":true,"title":"Expressive Mode"},"suggested_audio_tags":{"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.","type":"array","items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"maxItems":20,"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","default":"pcm_16000","$ref":"#/components/schemas/TTSOutputFormat"},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","default":3,"$ref":"#/components/schemas/TTSOptimizeStreamingLatency","deprecated":true},"stability":{"description":"The stability of generated speech","type":"number","default":0.5,"maximum":1,"minimum":0,"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","type":"number","default":1,"maximum":1.2,"minimum":0.7,"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","type":"number","default":0.8,"maximum":1,"minimum":0,"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","default":"system_prompt","$ref":"#/components/schemas/TextNormalisationType"},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","type":"boolean","default":true,"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfig"},"TTSConversationalConfigOverride":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSConversationalModel"},{"type":"null"}],"x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"stability":{"description":"The stability of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Similarity Boost","x-convai-client-override":true}},"example":{"model_id":"eleven_turbo_v2","similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfigOverride"},"TTSConversationalConfigOverrideConfig":{"type":"object","properties":{"model_id":{"description":"Whether to allow overriding the model_id field.","type":"boolean","default":false,"title":"Model Id"},"voice_id":{"description":"Whether to allow overriding the voice_id field.","type":"boolean","default":false,"title":"Voice Id"},"stability":{"description":"Whether to allow overriding the stability field.","type":"boolean","default":false,"title":"Stability"},"speed":{"description":"Whether to allow overriding the speed field.","type":"boolean","default":false,"title":"Speed"},"similarity_boost":{"description":"Whether to allow overriding the similarity_boost field.","type":"boolean","default":false,"title":"Similarity Boost"}},"title":"TTSConversationalConfigOverrideConfig"},"TTSConversationalConfigWorkflowOverride-Input":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSConversationalModel"},{"type":"null"}],"x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","anyOf":[{"items":{"$ref":"#/components/schemas/SupportedVoice"},"type":"array"},{"type":"null"}],"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Expressive Mode"},"suggested_audio_tags":{"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.","anyOf":[{"items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"type":"array"},{"type":"null"}],"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSOutputFormat"},{"type":"null"}]},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","anyOf":[{"$ref":"#/components/schemas/TTSOptimizeStreamingLatency"},{"type":"null"}]},"stability":{"description":"The stability of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","anyOf":[{"$ref":"#/components/schemas/TextNormalisationType"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","anyOf":[{"items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"type":"array"},{"type":"null"}],"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfigWorkflowOverride"},"TTSConversationalConfigWorkflowOverride-Output":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSConversationalModel"},{"type":"null"}],"x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","anyOf":[{"items":{"$ref":"#/components/schemas/SupportedVoice"},"type":"array"},{"type":"null"}],"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Expressive Mode"},"suggested_audio_tags":{"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.","anyOf":[{"items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"type":"array"},{"type":"null"}],"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSOutputFormat"},{"type":"null"}]},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","anyOf":[{"$ref":"#/components/schemas/TTSOptimizeStreamingLatency"},{"type":"null"}]},"stability":{"description":"The stability of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","anyOf":[{"$ref":"#/components/schemas/TextNormalisationType"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","anyOf":[{"items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"type":"array"},{"type":"null"}],"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfigWorkflowOverride"},"TTSConversationalModel":{"type":"string","default":"eleven_flash_v2","enum":["eleven_turbo_v2","eleven_turbo_v2_5","eleven_flash_v2","eleven_flash_v2_5","eleven_multilingual_v2","eleven_v3_conversational"],"title":"TTSConversationalModel","x-fern-enum":{"eleven_turbo_v2":{"description":"Deprecated: Use eleven_flash_v2 instead.","deprecated":true},"eleven_turbo_v2_5":{"description":"Deprecated: Use eleven_flash_v2_5 instead.","deprecated":true}}},"TTSModelFamily":{"type":"string","enum":["turbo","flash","multilingual","v3_conversational"],"title":"TTSModelFamily","x-fern-enum":{"turbo":{"description":"Deprecated: Use flash instead.","deprecated":true}}},"TTSOptimizeStreamingLatency":{"type":"integer","enum":[0,1,2,3,4],"title":"TTSOptimizeStreamingLatency"},"TTSOutputFormat":{"type":"string","default":"pcm_16000","enum":["pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_44100","pcm_48000","ulaw_8000"],"title":"TTSOutputFormat"},"TelephonyCallConfig":{"type":"object","properties":{"ringing_timeout_secs":{"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.","type":"integer","default":60,"maximum":999,"minimum":1,"title":"Ringing Timeout Secs"},"twilio_call_recording_enabled":{"description":"Whether to record the call using Twilio call recording. Ignored for non-Twilio providers. Recordings are stored in your Twilio account.","type":"boolean","default":false,"title":"Twilio Call Recording Enabled"}},"title":"TelephonyCallConfig"},"TelephonyDirection":{"type":"string","default":"inbound","enum":["inbound","outbound"],"title":"TelephonyDirection"},"TelephonyProvider":{"type":"string","enum":["twilio","sip_trunk","exotel"],"title":"TelephonyProvider"},"TestConditionRationaleCommonModel":{"description":"Structured rationale for test condition results containing individual failure/success reasons.","type":"object","properties":{"messages":{"description":"List of individual parameter evaluation messages or reasons","type":"array","items":{"type":"string"},"title":"Messages"},"summary":{"description":"High-level summary of the evaluation result","type":"string","default":"","title":"Summary"}},"title":"TestConditionRationaleCommonModel"},"TestConditionResultCommonModel":{"type":"object","properties":{"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"rationale":{"anyOf":[{"$ref":"#/components/schemas/TestConditionRationaleCommonModel"},{"type":"null"}]}},"required":["result"],"title":"TestConditionResultCommonModel"},"TestFromConversationMetadata-Input":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"original_agent_reply":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"default":[],"title":"Original Agent Reply"}},"required":["conversation_id","agent_id"],"title":"TestFromConversationMetadata"},"TestFromConversationMetadata-Output":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"original_agent_reply":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"default":[],"title":"Original Agent Reply"}},"required":["conversation_id","agent_id"],"title":"TestFromConversationMetadata"},"TestInvocationSummaryResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the test invocation","type":"string","title":"Id"},"agent_id":{"description":"The ID of the agent this test invocation belongs to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"branch_id":{"description":"The ID of the branch this test invocation was run on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"created_at_unix_secs":{"description":"Creation time of the test invocation in unix seconds","type":"integer","title":"Created At Unix Secs"},"test_run_count":{"description":"Number of test runs in this invocation","type":"integer","title":"Test Run Count"},"passed_count":{"description":"Number of test runs that passed","type":"integer","title":"Passed Count"},"failed_count":{"description":"Number of test runs that failed","type":"integer","title":"Failed Count"},"pending_count":{"description":"Number of test runs that are pending","type":"integer","title":"Pending Count"},"title":{"description":"Title of the test invocation - either the single test name or count of tests","type":"string","title":"Title"},"access_info":{"description":"The access information of the test invocation","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"repeat_count":{"description":"Number of times each test was repeated in this invocation","type":"integer","default":1,"title":"Repeat Count"}},"required":["id","created_at_unix_secs","test_run_count","passed_count","failed_count","pending_count","title"],"title":"TestInvocationSummaryResponseModel"},"TestRunMetadata":{"type":"object","properties":{"workspace_id":{"type":"string","title":"Workspace Id"},"test_name":{"type":"string","title":"Test Name"},"ran_by_user_email":{"type":"string","title":"Ran By User Email"},"test_type":{"type":"string","default":"llm","enum":["llm","tool_call","simulation"],"title":"Test Type"}},"required":["workspace_id","test_name","ran_by_user_email"],"title":"TestRunMetadata"},"TestRunResultBucket":{"type":"object","properties":{"test_run_ids":{"type":"array","items":{"type":"string"},"title":"Test Run Ids"},"title":{"description":"Short one-line title for this bucket","type":"string","title":"Title"},"reason":{"description":"Short summary of why the test runs in this bucket passed or failed","type":"string","title":"Reason"},"status":{"$ref":"#/components/schemas/TestRunStatus"}},"required":["test_run_ids","title","reason","status"],"title":"TestRunResultBucket"},"TestRunResultSummary":{"type":"object","properties":{"test_id":{"type":"string","title":"Test Id"},"test_name":{"type":"string","title":"Test Name"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/TestRunResultBucket"},"title":"Buckets"}},"required":["test_id","test_name","buckets"],"title":"TestRunResultSummary"},"TestRunStatus":{"type":"string","enum":["pending","passed","failed"],"title":"TestRunStatus"},"TestSharingMode":{"type":"string","enum":["all","shared_with_me"],"title":"TestSharingMode"},"TestToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"testing_tool_result","const":"testing_tool_result","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"type":"string","default":"Skipping tool call in test mode","title":"Reason"}},"title":"TestToolResultModel"},"TestType":{"type":"string","enum":["llm","tool","simulation","folder"],"title":"TestType"},"TestsFeatureUsageCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"tests_ran_after_last_modification":{"type":"boolean","default":false,"title":"Tests Ran After Last Modification"},"tests_ran_in_last_7_days":{"type":"boolean","default":false,"title":"Tests Ran In Last 7 Days"}},"title":"TestsFeatureUsageCommonModel"},"TextNormalisationType":{"description":"Method for converting numbers to words before sending to TTS","type":"string","default":"system_prompt","enum":["system_prompt","elevenlabs"],"title":"TextNormalisationType"},"ThresholdGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"},"threshold":{"type":"number","default":0.3,"maximum":1,"minimum":0,"title":"Threshold"}},"title":"ThresholdGuardrail"},"TimeRange":{"type":"object","properties":{"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"}},"required":["start_ms","end_ms"],"title":"TimeRange"},"ToDialogueSettingsResponseModel":{"type":"object","properties":{"stability":{"description":"Determines how stable the voice is and the randomness between each generation. Lower values introduce broader emotional range for the voice. Higher values can result in a monotonous voice with limited emotion.","default":0.5,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"},"speed":{"anyOf":[{"type":"number","maximum":2,"minimum":0.5},{"type":"null"}],"title":"Speed"}},"example":{"stability":0.5},"title":"ToDialogueSettingsResponseModel"},"TokenResponseModel":{"type":"object","properties":{"token":{"type":"string","title":"Token"}},"required":["token"],"title":"TokenResponseModel"},"Tool":{"description":"Definition for a tool the client can call.","type":"object","properties":{"name":{"type":"string","title":"Name"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"inputSchema":{"type":"object","additionalProperties":true,"title":"Inputschema"},"outputSchema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Outputschema"},"icons":{"anyOf":[{"items":{"$ref":"#/components/schemas/Icon"},"type":"array"},{"type":"null"}],"title":"Icons"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/ToolAnnotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"execution":{"anyOf":[{"$ref":"#/components/schemas/ToolExecution"},{"type":"null"}]}},"additionalProperties":true,"required":["name","inputSchema"],"title":"Tool"},"ToolAnnotations":{"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.","type":"object","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"readOnlyHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Readonlyhint"},"destructiveHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Destructivehint"},"idempotentHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idempotenthint"},"openWorldHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Openworldhint"}},"additionalProperties":true,"title":"ToolAnnotations"},"ToolCallSoundBehavior":{"description":"Determines how the tool call sound should be played.","type":"string","default":"auto","enum":["auto","always"],"title":"ToolCallSoundBehavior"},"ToolCallSoundType":{"description":"Predefined tool call sounds; ``None`` means no sound.","type":"string","enum":["typing","elevator1","elevator2","elevator3","elevator4"],"title":"ToolCallSoundType"},"ToolCallUnitTestModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Output"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"}},"title":"ToolCallUnitTestModel"},"ToolErrorHandlingMode":{"description":"Controls how tool errors are processed before being shared with the agent.","type":"string","default":"auto","enum":["auto","summarized","passthrough","hide"],"title":"ToolErrorHandlingMode"},"ToolExecution":{"description":"Execution-related properties for a tool.","type":"object","properties":{"taskSupport":{"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}],"title":"Tasksupport"}},"additionalProperties":true,"title":"ToolExecution"},"ToolExecutionMode":{"type":"string","default":"immediate","enum":["immediate","post_tool_speech","async"],"title":"ToolExecutionMode"},"ToolExecutionResponseModel":{"type":"object","properties":{"tool_id":{"description":"The ID of the tool that was executed","type":"string","title":"Tool Id"},"tool_request_id":{"description":"The request/call ID associated with this tool execution","type":"string","title":"Tool Request Id"},"conversation_id":{"description":"The ID of the conversation where the tool was executed","type":"string","title":"Conversation Id"},"agent_id":{"description":"The ID of the agent that ran the tool","type":"string","title":"Agent Id"},"branch_id":{"description":"The branch ID if the agent has branches","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"timestamp":{"description":"Unix timestamp when the tool was executed","type":"number","title":"Timestamp"},"latency_secs":{"description":"How long the tool execution took","type":"number","title":"Latency Secs"},"is_error":{"description":"Whether the tool execution failed","type":"boolean","default":false,"title":"Is Error"},"request_payload":{"description":"LLM-extracted parameters sent to the tool (JSON string)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Payload"},"response_payload":{"description":"Response returned by the tool","anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Payload"},"error_message":{"description":"Error message if the tool execution failed","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"error_type":{"description":"Error category (internal, customer_config, customer_auth, external_server, external_client, client_timeout, unknown)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Type"},"id":{"type":"string","title":"Id"},"tool_call_details":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output"}],"discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output","client":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails","mcp":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails","webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}}},{"type":"null"}],"title":"Tool Call Details"}},"required":["tool_id","tool_request_id","conversation_id","agent_id","timestamp","latency_secs","id"],"title":"ToolExecutionResponseModel"},"ToolInterruptionMode":{"type":"string","default":"allow","enum":["allow","disable_during_tool","disable_during_tool_and_turn"],"title":"ToolInterruptionMode"},"ToolMockConfig":{"type":"object","properties":{"default_return_value":{"type":"string","default":"Tool Called.","title":"Default Return Value"},"default_is_error":{"type":"boolean","default":false,"title":"Default Is Error"}},"title":"ToolMockConfig"},"ToolRequestModel":{"type":"object","properties":{"tool_config":{"description":"Configuration for the tool","discriminator":{"propertyName":"type","mapping":{"client":"#/components/schemas/ClientToolConfig-Input","mcp":"#/components/schemas/MCPToolConfig-Input","system":"#/components/schemas/SystemToolConfig-Input","webhook":"#/components/schemas/WebhookToolConfig-Input"}},"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Input"},{"$ref":"#/components/schemas/ClientToolConfig-Input"},{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"$ref":"#/components/schemas/MCPToolConfig-Input"}],"title":"Tool Config"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["tool_config"],"title":"ToolRequestModel"},"ToolResponseMockConfig-Input":{"type":"object","properties":{"parameter_conditions":{"description":"If the list is empty, the mock will always activate.","type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameter Conditions"},"mock_result":{"description":"The return value the LLM sees when this mock is active.","type":"string","title":"Mock Result"}},"required":["mock_result"],"title":"ToolResponseMockConfig"},"ToolResponseMockConfig-Output":{"type":"object","properties":{"parameter_conditions":{"description":"If the list is empty, the mock will always activate.","type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameter Conditions"},"mock_result":{"description":"The return value the LLM sees when this mock is active.","type":"string","title":"Mock Result"}},"required":["mock_result"],"title":"ToolResponseMockConfig"},"ToolResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"tool_config":{"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"client":"#/components/schemas/ClientToolConfig-Output","mcp":"#/components/schemas/MCPToolConfig-Output","system":"#/components/schemas/SystemToolConfig-Output","webhook":"#/components/schemas/WebhookToolConfig-Output"}},"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Output"},{"$ref":"#/components/schemas/ClientToolConfig-Output"},{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"$ref":"#/components/schemas/MCPToolConfig-Output"}],"title":"Tool Config"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"usage_stats":{"$ref":"#/components/schemas/ToolUsageStatsResponseModel"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Output"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["id","tool_config","access_info","usage_stats"],"title":"ToolResponseModel"},"ToolSortBy":{"type":"string","enum":["name","created_at"],"title":"ToolSortBy"},"ToolType":{"type":"string","enum":["system","webhook","client","mcp","workflow","api_integration_webhook","api_integration_mcp","smb"],"title":"ToolType"},"ToolTypeFilter":{"type":"string","enum":["webhook","client","api_integration_webhook"],"title":"ToolTypeFilter"},"ToolUsageStatsResponseModel":{"type":"object","properties":{"total_calls":{"description":"The total number of calls to the tool","type":"integer","default":0,"title":"Total Calls"},"avg_latency_secs":{"type":"number","title":"Avg Latency Secs"}},"required":["avg_latency_secs"],"title":"ToolUsageStatsResponseModel"},"ToolsResponseModel":{"type":"object","properties":{"tools":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseModel"},"title":"Tools"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["tools","has_more"],"title":"ToolsResponseModel"},"TopicDiscoverySettings":{"description":"Per-agent topic-discovery configuration. Cadence and analysis window are\nmanaged internally; this only exposes the customer-facing on/off toggle.","type":"object","properties":{},"title":"TopicDiscoverySettings"},"TopicEvaluationCriteriaAggregate":{"type":"object","properties":{"criteria_id":{"type":"string","title":"Criteria Id"},"success_count":{"type":"integer","default":0,"title":"Success Count"},"failure_count":{"type":"integer","default":0,"title":"Failure Count"},"unknown_count":{"type":"integer","default":0,"title":"Unknown Count"}},"required":["criteria_id"],"title":"TopicEvaluationCriteriaAggregate"},"TopicMetricsAggregate":{"type":"object","properties":{"conversation_count":{"type":"integer","default":0,"title":"Conversation Count"},"sentiment":{"anyOf":[{"$ref":"#/components/schemas/TopicSentimentAggregate"},{"type":"null"}]},"evaluation_criteria":{"type":"array","items":{"$ref":"#/components/schemas/TopicEvaluationCriteriaAggregate"},"title":"Evaluation Criteria"}},"title":"TopicMetricsAggregate"},"TopicSentimentAggregate":{"type":"object","properties":{"sentiment":{"$ref":"#/components/schemas/NumericDistributionAggregate"},"frustration":{"$ref":"#/components/schemas/NumericDistributionAggregate"},"positive_count":{"type":"integer","default":0,"title":"Positive Count"},"neutral_count":{"type":"integer","default":0,"title":"Neutral Count"},"negative_count":{"type":"integer","default":0,"title":"Negative Count"}},"title":"TopicSentimentAggregate"},"TranscriptionOrderItemRequest":{"type":"object","properties":{"kind":{"description":"The type of order item.","type":"string","default":"transcription","const":"transcription","title":"Kind"},"media_ids":{"description":"The IDs of the uploaded media files to transcribe.","type":"array","items":{"$ref":"#/components/schemas/MediaId"},"title":"Media Ids"},"source_language":{"description":"The language code of the source media (e.g. 'en', 'es').","type":"string","title":"Source Language"},"verbatim":{"description":"Whether to transcribe every word exactly, including filler words.","type":"boolean","default":false,"title":"Verbatim"},"instructions":{"description":"Optional free-text instructions for the transcription team.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"}},"example":{"instructions":"Use speaker labels where possible.","kind":"transcription","media_ids":["prodmedia_01jgatk6h0fwxrtbjade61yqhx","prodmedia_01jgb2zd68f8f9tfvbb968wb8z"],"source_language":"en","verbatim":false},"required":["media_ids","source_language"],"title":"TranscriptionOrderItemRequest"},"TransferBranchInfoDefaultingToMain":{"type":"object","properties":{"branch_reason":{"type":"string","const":"defaulting_to_main","title":"Branch Reason"},"branch_id":{"type":"string","title":"Branch Id"}},"required":["branch_reason","branch_id"],"title":"TransferBranchInfoDefaultingToMain"},"TransferBranchInfoTrafficSplit":{"type":"object","properties":{"branch_reason":{"type":"string","const":"traffic_split","title":"Branch Reason"},"branch_id":{"type":"string","title":"Branch Id"},"traffic_percentage":{"type":"number","title":"Traffic Percentage"}},"required":["branch_reason","branch_id","traffic_percentage"],"title":"TransferBranchInfoTrafficSplit"},"TransferToAgentToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_agent","const":"transfer_to_agent","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTransfer-Input"},"title":"Transfers"}},"required":["transfers"],"title":"TransferToAgentToolConfig"},"TransferToAgentToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_agent","const":"transfer_to_agent","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTransfer-Output"},"title":"Transfers"}},"required":["transfers"],"title":"TransferToAgentToolConfig"},"TransferToAgentToolResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_agent_error","const":"transfer_to_agent_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"from_agent":{"type":"string","title":"From Agent"},"error":{"type":"string","title":"Error"}},"required":["from_agent","error"],"title":"TransferToAgentToolResultErrorModel"},"TransferToAgentToolResultSuccessModel-Input":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_agent_success","const":"transfer_to_agent_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"from_agent":{"type":"string","title":"From Agent"},"to_agent":{"type":"string","title":"To Agent"},"to_node":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Node"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"branch_info":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/TransferBranchInfoTrafficSplit"},{"$ref":"#/components/schemas/TransferBranchInfoDefaultingToMain"}],"discriminator":{"propertyName":"branch_reason","mapping":{"defaulting_to_main":"#/components/schemas/TransferBranchInfoDefaultingToMain","traffic_split":"#/components/schemas/TransferBranchInfoTrafficSplit"}}},{"type":"null"}],"title":"Branch Info"},"preserve_client_tts_overrides":{"type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["from_agent","to_agent","condition"],"title":"TransferToAgentToolResultSuccessModel"},"TransferToAgentToolResultSuccessModel-Output":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_agent_success","const":"transfer_to_agent_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"from_agent":{"type":"string","title":"From Agent"},"to_agent":{"type":"string","title":"To Agent"},"to_node":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Node"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"branch_info":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/TransferBranchInfoTrafficSplit"},{"$ref":"#/components/schemas/TransferBranchInfoDefaultingToMain"}],"discriminator":{"propertyName":"branch_reason","mapping":{"defaulting_to_main":"#/components/schemas/TransferBranchInfoDefaultingToMain","traffic_split":"#/components/schemas/TransferBranchInfoTrafficSplit"}}},{"type":"null"}],"title":"Branch Info"},"preserve_client_tts_overrides":{"type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["from_agent","to_agent","condition"],"title":"TransferToAgentToolResultSuccessModel"},"TransferToNumberResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_error","const":"transfer_to_number_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"error":{"type":"string","title":"Error"},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details"}},"required":["error"],"title":"TransferToNumberResultErrorModel"},"TransferToNumberResultExotelSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_exotel_success","const":"transfer_to_number_exotel_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"transfer_number":{"type":"string","title":"Transfer Number"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"agent_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Message"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"required":["transfer_number"],"title":"TransferToNumberResultExotelSuccessModel"},"TransferToNumberResultSipSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_sip_success","const":"transfer_to_number_sip_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"transfer_number":{"type":"string","title":"Transfer Number"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"required":["transfer_number"],"title":"TransferToNumberResultSipSuccessModel"},"TransferToNumberResultTwilioSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_twilio_success","const":"transfer_to_number_twilio_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"transfer_number":{"type":"string","title":"Transfer Number"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"client_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Message"},"agent_message":{"type":"string","title":"Agent Message"},"conference_name":{"type":"string","title":"Conference Name"},"post_dial_digits":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Post Dial Digits"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"required":["transfer_number","agent_message","conference_name"],"title":"TransferToNumberResultTwilioSuccessModel"},"TransferToNumberToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_number","const":"transfer_to_number","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumberTransfer"},"title":"Transfers"},"enable_client_message":{"description":"Whether to play a message to the client while they wait for transfer. Defaults to true for backward compatibility.","type":"boolean","default":true,"title":"Enable Client Message"}},"required":["transfers"],"title":"TransferToNumberToolConfig"},"TransferToNumberToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_number","const":"transfer_to_number","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumberTransfer"},"title":"Transfers"},"enable_client_message":{"description":"Whether to play a message to the client while they wait for transfer. Defaults to true for backward compatibility.","type":"boolean","default":true,"title":"Enable Client Message"}},"required":["transfers"],"title":"TransferToNumberToolConfig"},"TransferTypeEnum":{"type":"string","default":"conference","enum":["blind","conference","sip_refer"],"title":"TransferTypeEnum"},"TurnConfig":{"type":"object","properties":{"turn_timeout":{"description":"Maximum wait time for the user's reply before re-engaging the user","type":"number","default":7,"title":"Turn Timeout"},"initial_wait_time":{"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.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Wait Time"},"silence_end_call_timeout":{"description":"Maximum wait time since the user last spoke before terminating the call","type":"number","default":-1,"title":"Silence End Call Timeout"},"mode":{"description":"The mode of turn detection","default":"turn","$ref":"#/components/schemas/TurnMode","x-fern-ignore":true},"turn_eagerness":{"description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)","default":"normal","$ref":"#/components/schemas/TurnEagerness"},"spelling_patience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra","default":"auto","$ref":"#/components/schemas/SpellingPatience"},"speculative_turn":{"description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs.","type":"boolean","default":false,"title":"Speculative Turn"},"retranscribe_on_turn_timeout":{"description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing for affected turns.","type":"boolean","default":false,"title":"Retranscribe On Turn Timeout"},"turn_model":{"default":"turn_v3","$ref":"#/components/schemas/TurnModel"},"interruption_ignore_terms":{"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Terms"},"interruption_ignore_term_languages":{"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Term Languages"},"transcribe_on_disabled_interruptions":{"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.","type":"boolean","default":false,"title":"Transcribe On Disabled Interruptions"},"soft_timeout_config":{"description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses.","$ref":"#/components/schemas/SoftTimeoutConfig"}},"example":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"title":"TurnConfig"},"TurnConfigOverride":{"type":"object","properties":{"soft_timeout_config":{"description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses.","anyOf":[{"$ref":"#/components/schemas/SoftTimeoutConfigOverride"},{"type":"null"}]}},"example":{"soft_timeout_config":{"message":"Hhmmmm...yeah."}},"title":"TurnConfigOverride"},"TurnConfigOverrideConfig":{"type":"object","properties":{"soft_timeout_config":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/SoftTimeoutConfigOverrideConfig"}},"title":"TurnConfigOverrideConfig"},"TurnConfigWorkflowOverride":{"type":"object","properties":{"turn_timeout":{"description":"Maximum wait time for the user's reply before re-engaging the user","anyOf":[{"type":"number"},{"type":"null"}],"title":"Turn Timeout"},"initial_wait_time":{"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.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Wait Time"},"silence_end_call_timeout":{"description":"Maximum wait time since the user last spoke before terminating the call","anyOf":[{"type":"number"},{"type":"null"}],"title":"Silence End Call Timeout"},"mode":{"description":"The mode of turn detection","anyOf":[{"$ref":"#/components/schemas/TurnMode"},{"type":"null"}],"x-fern-ignore":true},"turn_eagerness":{"description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)","anyOf":[{"$ref":"#/components/schemas/TurnEagerness"},{"type":"null"}]},"spelling_patience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra","anyOf":[{"$ref":"#/components/schemas/SpellingPatience"},{"type":"null"}]},"speculative_turn":{"description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Speculative Turn"},"retranscribe_on_turn_timeout":{"description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing for affected turns.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Retranscribe On Turn Timeout"},"turn_model":{"description":"Version of the turn detection model to use.","anyOf":[{"$ref":"#/components/schemas/TurnModel"},{"type":"null"}]},"interruption_ignore_terms":{"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Interruption Ignore Terms"},"interruption_ignore_term_languages":{"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Interruption Ignore Term Languages"},"transcribe_on_disabled_interruptions":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Transcribe On Disabled Interruptions"},"soft_timeout_config":{"description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses.","anyOf":[{"$ref":"#/components/schemas/SoftTimeoutConfigWorkflowOverride"},{"type":"null"}]}},"example":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"title":"TurnConfigWorkflowOverride"},"TurnDetectionType":{"type":"string","default":"semantic_vad","enum":["semantic_vad","server_vad"],"title":"TurnDetectionType"},"TurnEagerness":{"description":"Agent's eagerness to respond. Higher values make agent wait for higher turn probability.","type":"string","default":"normal","enum":["patient","normal","eager"],"title":"TurnEagerness"},"TurnMode":{"type":"string","default":"turn","enum":["silence","turn"],"title":"TurnMode"},"TurnModel":{"description":"Version of the turn detection model to use.","type":"string","default":"turn_v3","enum":["turn_v2","turn_v3"],"title":"TurnModel"},"TwilioEdgeLocation":{"description":"Valid Twilio edge locations.","type":"string","enum":["ashburn","dublin","frankfurt","sao-paulo","singapore","sydney","tokyo","umatilla","roaming"],"title":"TwilioEdgeLocation"},"TwilioOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"callSid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callsid"}},"required":["success","message","conversation_id","callSid"],"title":"TwilioOutboundCallResponse"},"TwilioRegionId":{"description":"Valid Twilio region IDs.","type":"string","enum":["us1","ie1","au1"],"title":"TwilioRegionId"},"TxtExportOptions":{"type":"object","properties":{"max_characters_per_line":{"default":100,"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Characters Per Line"},"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"txt","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"TxtExportOptions"},"URLAvatar":{"type":"object","properties":{"type":{"description":"The type of the avatar","type":"string","default":"url","const":"url","title":"Type"},"custom_url":{"description":"The custom URL of the avatar","type":"string","default":"","title":"Custom Url"}},"title":"URLAvatar"},"UUITransferConfig":{"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.","type":"object","properties":{"data":{"description":"UUI payload to send on SIP REFER transfers. Supports inline dynamic variables and is hex-encoded at transfer time.","type":"string","maxLength":8192,"title":"Data"},"protocol_discriminator":{"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.","anyOf":[{"type":"string","pattern":"^[0-9A-Fa-f]{2}$"},{"type":"null"}],"title":"Protocol Discriminator"},"protocol_discriminator_mode":{"description":"How to attach protocol_discriminator. 'prefix' prepends the octet to the hex payload (User-to-User=XX;encoding=hex). 'pd_parameter' sends it as a separate parameter (User-to-User=;pd=XX;encoding=hex). Ignored when protocol_discriminator is unset.","type":"string","default":"prefix","enum":["prefix","pd_parameter"],"title":"Protocol Discriminator Mode"}},"required":["data"],"title":"UUITransferConfig"},"UnitTestRunResponseModel":{"type":"object","properties":{"test_run_id":{"type":"string","title":"Test Run Id"},"test_info":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ResponseUnitTestModel"},{"$ref":"#/components/schemas/ToolCallUnitTestModel"},{"$ref":"#/components/schemas/SimulationTestModel"}],"discriminator":{"propertyName":"type","mapping":{"llm":"#/components/schemas/ResponseUnitTestModel","simulation":"#/components/schemas/SimulationTestModel","tool":"#/components/schemas/ToolCallUnitTestModel"}}},{"type":"null"}],"title":"Test Info"},"test_invocation_id":{"type":"string","title":"Test Invocation Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"status":{"$ref":"#/components/schemas/TestRunStatus"},"agent_responses":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"type":"array"},{"type":"null"}],"title":"Agent Responses"},"test_id":{"type":"string","title":"Test Id"},"test_name":{"type":"string","default":"Unknown Test","title":"Test Name"},"condition_result":{"anyOf":[{"$ref":"#/components/schemas/TestConditionResultCommonModel"},{"type":"null"}]},"last_updated_at_unix":{"type":"integer","title":"Last Updated At Unix"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/TestRunMetadata"},{"type":"null"}]},"root_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"},"root_folder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Name"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},"required":["test_run_id","test_invocation_id","agent_id","status","test_id"],"title":"UnitTestRunResponseModel"},"UnitTestSummaryResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the test","type":"string","title":"Id"},"name":{"description":"Name of the test","type":"string","title":"Name"},"access_info":{"description":"The access information of the test","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"created_at_unix_secs":{"description":"Creation time of the test in unix seconds","type":"integer","title":"Created At Unix Secs"},"last_updated_at_unix_secs":{"description":"Last update time of the test in unix seconds","type":"integer","title":"Last Updated At Unix Secs"},"type":{"description":"Type of the test or entity","$ref":"#/components/schemas/TestType"},"entity_type":{"description":"The type of entity (test or folder)","default":"test","$ref":"#/components/schemas/AgentTestEntityType"},"folder_parent_id":{"description":"The ID of the parent folder","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments from root to this entity","type":"array","items":{"$ref":"#/components/schemas/AgentTestFolderPathSegmentResponseModel"},"title":"Folder Path"},"children_count":{"description":"Number of direct children (tests and subfolders) for folders only","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Children Count"},"conversation_initiation_source":{"description":"Channel the test simulates the conversation as. Null for folders or default behavior.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]}},"required":["id","name","created_at_unix_secs","last_updated_at_unix_secs","type"],"title":"UnitTestSummaryResponseModel"},"UnitTestToolCallEvaluationModel-Input":{"type":"object","properties":{"parameters":{"description":"Parameters to evaluate for the agent's tool call. If empty, the tool call parameters are not evaluated.","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameters","type":"array"},"referenced_tool":{"description":"The tool to evaluate a call against.","anyOf":[{"$ref":"#/components/schemas/ReferencedToolCommonModel"},{"type":"null"}]},"verify_absence":{"description":"Whether to verify that the tool was NOT called.","type":"boolean","default":false,"title":"Verify Absence"},"workflow_node_transition":{"description":"Configuration for testing workflow node transitions. When set, the test will verify the agent transitions to the specified workflow node.","anyOf":[{"$ref":"#/components/schemas/UnitTestWorkflowNodeTransitionEvaluationNodeId"},{"type":"null"}]}},"title":"UnitTestToolCallEvaluationModel"},"UnitTestToolCallEvaluationModel-Output":{"type":"object","properties":{"parameters":{"description":"Parameters to evaluate for the agent's tool call. If empty, the tool call parameters are not evaluated.","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameters","type":"array"},"referenced_tool":{"description":"The tool to evaluate a call against.","anyOf":[{"$ref":"#/components/schemas/ReferencedToolCommonModel"},{"type":"null"}]},"verify_absence":{"description":"Whether to verify that the tool was NOT called.","type":"boolean","default":false,"title":"Verify Absence"},"workflow_node_transition":{"description":"Configuration for testing workflow node transitions. When set, the test will verify the agent transitions to the specified workflow node.","anyOf":[{"$ref":"#/components/schemas/UnitTestWorkflowNodeTransitionEvaluationNodeId"},{"type":"null"}]}},"title":"UnitTestToolCallEvaluationModel"},"UnitTestToolCallParameter":{"type":"object","properties":{"eval":{"discriminator":{"propertyName":"type","mapping":{"anything":"#/components/schemas/MatchAnythingParameterEvaluationStrategy","exact":"#/components/schemas/ExactParameterEvaluationStrategy","llm":"#/components/schemas/LLMParameterEvaluationStrategy","regex":"#/components/schemas/RegexParameterEvaluationStrategy"}},"oneOf":[{"$ref":"#/components/schemas/LLMParameterEvaluationStrategy"},{"$ref":"#/components/schemas/RegexParameterEvaluationStrategy"},{"$ref":"#/components/schemas/ExactParameterEvaluationStrategy"},{"$ref":"#/components/schemas/MatchAnythingParameterEvaluationStrategy"}],"title":"Eval"},"path":{"type":"string","title":"Path"}},"required":["eval","path"],"title":"UnitTestToolCallParameter"},"UnitTestWorkflowNodeTransitionEvaluationNodeId":{"type":"object","properties":{"type":{"type":"string","default":"node_id","const":"node_id","title":"Type"},"agent_id":{"description":"The ID of the agent whose workflow contains the target node.","type":"string","title":"Agent Id"},"target_node_id":{"description":"The ID of the workflow node that the agent should transition to.","type":"string","title":"Target Node Id"}},"required":["agent_id","target_node_id"],"title":"UnitTestWorkflowNodeTransitionEvaluationNodeId"},"UpdateAgentProcedureParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_agent_procedure","const":"update_agent_procedure","title":"Smb Tool Type"}},"title":"UpdateAgentProcedureParams"},"UpdateAgentRuleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_agent_rule","const":"update_agent_rule","title":"Smb Tool Type"}},"title":"UpdateAgentRuleParams"},"UpdateAssetParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_asset","const":"update_asset","title":"Smb Tool Type"}},"title":"UpdateAssetParams"},"UpdateBasicAuthRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"basic_auth","const":"basic_auth","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"title":"UpdateBasicAuthRequest"},"UpdateBearerAuthRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"bearer_auth","const":"bearer_auth","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}},"title":"UpdateBearerAuthRequest"},"UpdateBookingPageAppearanceParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_booking_page_appearance","const":"update_booking_page_appearance","title":"Smb Tool Type"}},"title":"UpdateBookingPageAppearanceParams"},"UpdateBookingPageSettingsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_booking_page_settings","const":"update_booking_page_settings","title":"Smb Tool Type"}},"title":"UpdateBookingPageSettingsParams"},"UpdateBusinessInfoParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_business_info","const":"update_business_info","title":"Smb Tool Type"}},"title":"UpdateBusinessInfoParams"},"UpdateCalendarEventParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_calendar_event","const":"update_calendar_event","title":"Smb Tool Type"}},"title":"UpdateCalendarEventParams"},"UpdateClientParams":{"description":"Update an existing client's information.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_client","const":"update_client","title":"Smb Tool Type"}},"title":"UpdateClientParams"},"UpdateCustomerFacingConfigParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_customer_facing_config","const":"update_customer_facing_config","title":"Smb Tool Type"}},"title":"UpdateCustomerFacingConfigParams"},"UpdateEnvironmentVariableRequest":{"type":"object","properties":{"values":{"description":"Values to replace. Set to null to remove an environment (except 'production').","type":"object","additionalProperties":{"anyOf":[{"type":"string","minLength":1},{"$ref":"#/components/schemas/EnvironmentVariableSecretValueRequest"},{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValueRequest"},{"type":"null"}]},"title":"Values"}},"required":["values"],"title":"UpdateEnvironmentVariableRequest"},"UpdateGroupSessionSeatsParams":{"description":"Change the seat count of an existing group session registration.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_group_session_seats","const":"update_group_session_seats","title":"Smb Tool Type"}},"title":"UpdateGroupSessionSeatsParams"},"UpdateHolidayParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_holiday","const":"update_holiday","title":"Smb Tool Type"}},"title":"UpdateHolidayParams"},"UpdateLocationParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_location","const":"update_location","title":"Smb Tool Type"}},"title":"UpdateLocationParams"},"UpdateMusicFinetuneRequestModel":{"type":"object","properties":{"name":{"description":"Updated name for the finetune.","anyOf":[{"type":"string","maxLength":200,"minLength":5},{"type":"null"}],"title":"Name"},"tags":{"description":"Replacement set of tags.","anyOf":[{"items":{"type":"string"},"type":"array","maxItems":5},{"type":"null"}],"title":"Tags"},"primary_genre":{"description":"Updated primary musical genre.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Genre"},"visibility":{"description":"Finetune visibility. Only 'private' and 'workspace' can be set.","anyOf":[{"type":"string","enum":["private","workspace"]},{"type":"null"}],"title":"Visibility"}},"title":"UpdateMusicFinetuneRequestModel"},"UpdateOAuth2ClientCredsRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"oauth2_client_credentials","const":"oauth2_client_credentials","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"extra_params":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Extra Params"},"basic_auth_in_header":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Basic Auth In Header"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"custom_headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Custom Headers"}},"title":"UpdateOAuth2ClientCredsRequest"},"UpdateOAuth2JWTRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"oauth2_jwt","const":"oauth2_jwt","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"algorithm":{"anyOf":[{"type":"string","enum":["HS256","HS384","HS512","RS256","RS384","RS512"]},{"type":"null"}],"title":"Algorithm"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuer"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audience"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"expiration_seconds":{"anyOf":[{"type":"integer","maximum":86400,"minimum":60},{"type":"null"}],"title":"Expiration Seconds"},"extra_params":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Extra Params"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"token_response_field":{"anyOf":[{"type":"string","enum":["access_token","id_token"]},{"type":"null"}],"title":"Token Response Field"},"secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Key"}},"title":"UpdateOAuth2JWTRequest"},"UpdateOrderRequest":{"type":"object","properties":{"name":{"description":"The new name for the order.","type":"string","maxLength":120,"minLength":1,"title":"Name"}},"example":{"name":"Spanish Dubs"},"required":["name"],"title":"UpdateOrderRequest"},"UpdateOrderResponse":{"type":"object","properties":{"name":{"description":"The updated order name.","type":"string","title":"Name"}},"example":{"name":"Spanish Dubs"},"required":["name"],"title":"UpdateOrderResponse"},"UpdatePhoneNumberRequest":{"type":"object","properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"inbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/InboundSIPTrunkConfigRequestModel"},{"type":"null"}]},"outbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/OutboundSIPTrunkConfigRequestModel"},{"type":"null"}]},"livekit_stack":{"anyOf":[{"$ref":"#/components/schemas/LivekitStackType"},{"type":"null"}]},"store_sip_messages":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Store Sip Messages"},"environment":{"description":"Environment to use for resolving environment variables on calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"branch_id":{"description":"Agent branch to use for calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"title":"UpdatePhoneNumberRequest"},"UpdateProductParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_product","const":"update_product","title":"Smb Tool Type"}},"title":"UpdateProductParams"},"UpdateResponseUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be moved to the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"UpdateResponseUnitTestRequest"},"UpdateServiceParams":{"description":"Update an existing service's information.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_service","const":"update_service","title":"Smb Tool Type"}},"title":"UpdateServiceParams"},"UpdateSimulationTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be moved to the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"UpdateSimulationTestRequest"},"UpdateSpeechEngineRequest":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"speech_engine":{"anyOf":[{"$ref":"#/components/schemas/SpeechEngineConfig"},{"type":"null"}]},"asr":{"anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfig"},{"type":"null"}]},"tts":{"anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfig-Input"},{"type":"null"}]},"turn":{"anyOf":[{"$ref":"#/components/schemas/BaseTurnConfig"},{"type":"null"}]},"conversation":{"anyOf":[{"$ref":"#/components/schemas/ConversationConfig-Input"},{"type":"null"}]},"privacy":{"anyOf":[{"$ref":"#/components/schemas/PrivacyConfig-Input"},{"type":"null"}]},"call_limits":{"anyOf":[{"$ref":"#/components/schemas/AgentCallLimits"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"overrides":{"anyOf":[{"$ref":"#/components/schemas/SpeechEngineConversationInitiationClientDataConfig"},{"type":"null"}]}},"title":"UpdateSpeechEngineRequest"},"UpdateStaffParams":{"description":"Update an existing staff member's information.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_staff","const":"update_staff","title":"Smb Tool Type"}},"title":"UpdateStaffParams"},"UpdateToolCallUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Input"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be moved to the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"UpdateToolCallUnitTestRequest"},"UpdateWhatsAppAccountRequest":{"type":"object","properties":{"assigned_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Agent Id"},"enable_messaging":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Messaging"},"enable_audio_message_response":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Audio Message Response"},"enable_typing_indicator":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Typing Indicator"}},"title":"UpdateWhatsAppAccountRequest"},"UpdateWorkspaceMemberResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace member update request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"UpdateWorkspaceMemberResponseModel"},"UpsertOrderItemRequest":{"type":"object","properties":{"item":{"description":"The order item to add or update.","$ref":"#/components/schemas/OrderItemRequest-Input"},"item_id":{"description":"The ID of an existing item to update. Omit to create a new item.","anyOf":[{"$ref":"#/components/schemas/ItemId"},{"type":"null"}]}},"examples":[{"item":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgatk6h0fwxrtbjade61yqhx","source_language":"en"}},{"item":{"cue_options":{"max_chars_per_line":42,"max_lines_per_cue":2},"destination_languages":["hi","fr-FR","de"],"instructions":"Avoid splitting noun phrases across lines.","kind":"subtitles","media_ids":["prodmedia_01jgatk6h0fwxrtbjade61yqhx","prodmedia_01jgb2zd68f8f9tfvbb968wb8z"],"sdh":false,"source_language":"en"}}],"required":["item"],"title":"UpsertOrderItemRequest"},"UpsertOrderItemResponse":{"type":"object","properties":{"item_id":{"description":"The ID of the upserted order item.","$ref":"#/components/schemas/ItemId"},"quote":{"description":"The quoted price for this item.","anyOf":[{"$ref":"#/components/schemas/QuoteInfo"},{"type":"null"}]}},"example":{"item_id":"proditem_01jgd3qhejfs7rm6swknz2ytjb","quote":{"amount_usd":11}},"required":["item_id"],"title":"UpsertOrderItemResponse"},"UrlModel":{"description":"OCSF URL object.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/url","type":"object","properties":{"url_string":{"description":"Full URL string","anyOf":[{"type":"string"},{"type":"null"}],"title":"Url String"},"scheme":{"description":"URL scheme (e.g., https)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheme"},"hostname":{"description":"URL hostname","anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"port":{"description":"URL port","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Port"},"path":{"description":"URL path","anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"},"query_string":{"description":"URL query string","anyOf":[{"type":"string"},{"type":"null"}],"title":"Query String"}},"additionalProperties":false,"title":"UrlModel"},"UrlSecretAuthResponse":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"url_secret","const":"url_secret","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","id"],"title":"UrlSecretAuthResponse"},"UsageAggregationInterval":{"description":"The time interval over which to aggregate the usage data.","type":"string","enum":["hour","day","week","month","cumulative"],"title":"UsageAggregationInterval"},"UsageCharactersResponseModel":{"type":"object","properties":{"time":{"description":"The time axis with unix timestamps for each day.","type":"array","items":{"type":"integer"},"title":"Time"},"usage":{"description":"The usage of each breakdown type along the time axis.","type":"object","additionalProperties":{"items":{"type":"number"},"type":"array"},"title":"Usage"}},"example":{"time":[1738252091000,1739404800000],"usage":{"All":[49,1053]}},"required":["time","usage"],"title":"UsageCharactersResponseModel"},"UserAccessManagementActivityId":{"description":"OCSF Activity IDs for User Access Management [3005] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/user_access_management","type":"integer","enum":[0,1,2,99],"title":"UserAccessManagementActivityId"},"UserFeedback":{"type":"object","properties":{"score":{"$ref":"#/components/schemas/UserFeedbackScore"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"}},"required":["score","time_in_call_secs"],"title":"UserFeedback"},"UserFeedbackScore":{"type":"string","enum":["like","dislike"],"title":"UserFeedbackScore"},"UserModel":{"description":"OCSF User object.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/user","type":"object","properties":{"name":{"description":"Username","anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uid":{"description":"Unique user identifier","anyOf":[{"type":"string"},{"type":"null"}],"title":"Uid"},"type_id":{"description":"Account type identifier","default":1,"$ref":"#/components/schemas/UserTypeId"},"type":{"description":"Account type description","anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"email_addr":{"description":"User email address","anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Addr"},"full_name":{"description":"Full name of the user","anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"domain":{"description":"User's domain","anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},"additionalProperties":false,"title":"UserModel"},"UserResponseModel":{"type":"object","properties":{"user_id":{"description":"The unique identifier of the user.","type":"string","title":"User Id"},"subscription":{"description":"Details of the user's subscription.","$ref":"#/components/schemas/SubscriptionResponseModel"},"is_new_user":{"description":"Whether the user is new. This field is deprecated and will be removed in the future. Use 'created_at' instead.","type":"boolean","deprecated":true,"title":"Is New User"},"xi_api_key":{"description":"The API key of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi Api Key"},"can_use_delayed_payment_methods":{"description":"This field is deprecated and will be removed in a future major version. Instead use subscription.trust_on_invoice_creation.","type":"boolean","deprecated":true,"title":"Can Use Delayed Payment Methods"},"is_onboarding_completed":{"description":"Whether the user's onboarding is completed.","type":"boolean","title":"Is Onboarding Completed"},"is_onboarding_checklist_completed":{"description":"Whether the user's onboarding checklist is completed.","type":"boolean","title":"Is Onboarding Checklist Completed"},"show_compliance_terms":{"description":"Whether to show compliance terms (ToS, Privacy Policy, biometric consent) during onboarding. Set for users signing up from the marketing site.","type":"boolean","default":false,"title":"Show Compliance Terms"},"first_name":{"description":"First name of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"is_api_key_hashed":{"description":"Whether the user's API key is hashed.","type":"boolean","default":false,"title":"Is Api Key Hashed"},"xi_api_key_preview":{"description":"The preview of the user's API key.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi Api Key Preview"},"referral_link_code":{"description":"The referral link code of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Link Code"},"partnerstack_partner_default_link":{"description":"The Partnerstack partner default link of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Partnerstack Partner Default Link"},"created_at":{"description":"The unix timestamp of the user's creation. 0 if the user was created before the unix timestamp was added.","type":"integer","title":"Created At"},"seat_type":{"description":"The seat type of the user.","$ref":"#/components/schemas/SeatType"}},"example":{"can_use_delayed_payment_methods":false,"created_at":1753999199,"first_name":"John","is_api_key_hashed":false,"is_new_user":false,"is_onboarding_checklist_completed":true,"is_onboarding_completed":true,"seat_type":"workspace_member","show_compliance_terms":false,"subscription":{"allowed_to_extend_character_limit":false,"billing_period":"monthly_period","can_extend_character_limit":false,"can_extend_voice_limit":false,"can_use_instant_voice_cloning":true,"can_use_professional_voice_cloning":true,"character_count":17231,"character_limit":100000,"character_refresh_period":"monthly_period","currency":"usd","current_overage":{"amount":"0","currency":"usd"},"max_character_limit_extension":10000,"max_credit_limit_extension":10000,"max_voice_add_edits":230,"next_character_count_reset_unix":1738356858,"professional_voice_limit":1,"professional_voice_slots_used":0,"professional_voice_slots_used_in_workspace":0,"status":"free","tier":"trial","voice_add_edit_counter":212,"voice_limit":120,"voice_slots_used":1},"user_id":"1234567890","xi_api_key":"8so27l7327189x0h939ekx293380l920"},"required":["user_id","subscription","is_new_user","can_use_delayed_payment_methods","is_onboarding_completed","is_onboarding_checklist_completed","created_at","seat_type"],"title":"UserResponseModel","x-fern-type-name":"User"},"UserTypeId":{"description":"OCSF User type IDs.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/user","type":"integer","enum":[0,1,2,3,4,99],"title":"UserTypeId"},"UsersSortBy":{"type":"string","enum":["last_contact_unix_secs","conversation_count","average_sentiment_score"],"title":"UsersSortBy"},"UtteranceResponseModel":{"type":"object","properties":{"start":{"description":"The start time of the utterance in seconds.","type":"number","title":"Start"},"end":{"description":"The end time of the utterance in seconds.","type":"number","title":"End"}},"example":{"end":1,"start":0},"required":["start","end"],"title":"UtteranceResponseModel"},"VADConfig":{"type":"object","properties":{"background_voice_detection":{"description":"Whether to use background voice filtering","type":"boolean","default":false,"title":"Background Voice Detection","x-fern-ignore":true}},"example":{"background_voice_detection":false},"title":"VADConfig"},"VADConfigWorkflowOverride":{"type":"object","properties":{"background_voice_detection":{"description":"Whether to use background voice filtering","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Background Voice Detection","x-fern-ignore":true}},"example":{"background_voice_detection":false},"title":"VADConfigWorkflowOverride"},"VOICE_CATEGORY":{"type":"string","enum":["premade","cloned","generated","professional","famous"]},"ValidationError":{"type":"object","properties":{"loc":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"required":["loc","msg","type"],"title":"ValidationError","x-fern-type-name":"ValidationError"},"Verbosity":{"type":"string","enum":["auto","concise","thorough"],"title":"Verbosity"},"VerificationAttemptResponseModel":{"type":"object","properties":{"text":{"description":"The text of the verification attempt.","type":"string","title":"Text"},"date_unix":{"description":"The date of the verification attempt in Unix time.","type":"integer","title":"Date Unix"},"accepted":{"description":"Whether the verification attempt was accepted.","type":"boolean","title":"Accepted"},"similarity":{"description":"The similarity of the verification attempt.","type":"number","title":"Similarity"},"levenshtein_distance":{"description":"The Levenshtein distance of the verification attempt.","type":"number","title":"Levenshtein Distance"},"recording":{"description":"The recording of the verification attempt.","anyOf":[{"$ref":"#/components/schemas/RecordingResponseModel"},{"type":"null"}]}},"example":{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"},"required":["text","date_unix","accepted","similarity","levenshtein_distance"],"title":"VerificationAttemptResponseModel","x-fern-type-name":"VerificationAttemptResponse"},"VerifiedVoiceLanguageResponseModel":{"type":"object","properties":{"language":{"description":"The language of the voice.","type":"string","title":"Language"},"model_id":{"description":"The voice's model ID.","type":"string","title":"Model Id"},"accent":{"description":"The voice's accent, if applicable.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"locale":{"description":"The voice's locale, if applicable.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"preview_url":{"description":"The voice's preview URL, if applicable.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"example":{"accent":"American","language":"en","model_id":"eleven_turbo_v2_5"},"required":["language","model_id"],"title":"VerifiedVoiceLanguageResponseModel"},"VerifyPVCVoiceCaptchaResponseModel":{"type":"object","properties":{"status":{"description":"The status of the verify PVC captcha request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"VerifyPVCVoiceCaptchaResponseModel"},"VideoAnalysis":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/VideoAnalysisResult"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"VideoAnalysis"},"VideoAnalysisResult":{"type":"object","properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"overall_pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overall Pacing"},"subjects":{"type":"array","items":{"$ref":"#/components/schemas/VideoSubject"},"title":"Subjects"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/VideoSegment"},"title":"Segments"},"key_moments":{"type":"array","items":{"$ref":"#/components/schemas/VideoKeyMoment"},"title":"Key Moments"}},"required":["title","description"],"title":"VideoAnalysisResult"},"VideoKeyMoment":{"type":"object","properties":{"timestamp_ms":{"type":"integer","title":"Timestamp Ms"},"type":{"type":"string","title":"Type"},"description":{"type":"string","title":"Description"}},"required":["timestamp_ms","type","description"],"title":"VideoKeyMoment"},"VideoSegment":{"type":"object","properties":{"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"},"description":{"type":"string","title":"Description"},"subjects":{"type":"array","items":{"type":"string"},"title":"Subjects"},"shot_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shot Type"},"camera_movement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Camera Movement"},"transition_in":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transition In"},"has_speech":{"type":"boolean","default":false,"title":"Has Speech"},"has_music":{"type":"boolean","default":false,"title":"Has Music"},"pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pacing"}},"required":["start_ms","end_ms","description"],"title":"VideoSegment"},"VideoSubject":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"required":["name","description"],"title":"VideoSubject"},"VisitedAgentRef":{"description":"An agent (and optional branch) that participated in the call, in first-seen transcript order.","type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"required":["agent_id"],"title":"VisitedAgentRef"},"VoiceDesignRequestModel":{"type":"object","properties":{"voice_description":{"description":"Description to use for the created voice.","type":"string","examples":["A sassy squeaky mouse"],"maxLength":1000,"minLength":20,"title":"Voice Description"},"model_id":{"description":"Model to use for the voice generation. Possible values: eleven_multilingual_ttv_v2, eleven_ttv_v3.","type":"string","default":"eleven_multilingual_ttv_v2","enum":["eleven_multilingual_ttv_v2","eleven_ttv_v3"],"examples":["eleven_multilingual_ttv_v2"],"title":"Model Id"},"text":{"description":"Text to generate, text length has to be between 100 and 1000.","anyOf":[{"type":"string","maxLength":1000,"minLength":100},{"type":"null"}],"examples":["Every act of kindness, no matter how small, carries value and can make a difference, as no gesture of goodwill is ever wasted."],"title":"Text"},"auto_generate_text":{"description":"Whether to automatically generate a text suitable for the voice description.","type":"boolean","default":false,"title":"Auto Generate Text"},"loudness":{"description":"Controls the volume level of the generated voice. -1 is quietest, 1 is loudest, 0 corresponds to roughly -24 LUFS.","type":"number","default":0.5,"examples":[0.5],"maximum":1,"minimum":-1,"title":"Loudness"},"seed":{"description":"Random number that controls the voice generation. Same seed with same inputs produces same voice.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[11],"title":"Seed"},"guidance_scale":{"description":"Controls how closely the AI follows the prompt. Lower numbers give the AI more freedom to be creative, while higher numbers force it to stick more to the prompt. High numbers can cause voice to sound artificial or robotic. We recommend to use longer, more detailed prompts at lower Guidance Scale.","type":"number","default":5,"examples":[5],"maximum":100,"minimum":0,"title":"Guidance Scale"},"stream_previews":{"description":"Determines whether the Text to Voice previews should be included in the response. If true, only the generated IDs will be returned which can then be streamed via the /v1/text-to-voice/:generated_voice_id/stream endpoint.","type":"boolean","default":false,"examples":[true],"title":"Stream Previews"},"should_enhance":{"description":"Whether to enhance the voice description using AI to add more detail and improve voice generation quality. When enabled, the system will automatically expand simple prompts into more detailed voice descriptions. Defaults to False","type":"boolean","default":false,"examples":[true],"title":"Should Enhance"},"remixing_session_id":{"description":"The remixing session id.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Id"},"remixing_session_iteration_id":{"description":"The id of the remixing session iteration where these generations should be attached to. If not provided, a new iteration will be created.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Iteration Id"},"quality":{"description":"Higher quality results in better voice output but less variety.","anyOf":[{"type":"number","maximum":1,"minimum":-1},{"type":"null"}],"examples":[0.9],"title":"Quality"},"reference_audio_base64":{"description":"Reference audio to use for the voice generation. The audio should be base64 encoded. Only supported when using the eleven_ttv_v3 model.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Audio Base64"},"prompt_strength":{"description":"Controls the balance of prompt versus reference audio when generating voice samples. 0 means almost no prompt influence, 1 means almost no reference audio influence. Only supported when using the eleven_ttv_v3 model.","anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"examples":[0.25],"title":"Prompt Strength"}},"required":["voice_description"],"title":"VoiceDesignRequestModel"},"VoiceMailDetectionResultSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"voicemail_detection_success","const":"voicemail_detection_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"voicemail_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voicemail Message"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"title":"VoiceMailDetectionResultSuccessModel"},"VoicePreviewResponseModel":{"type":"object","properties":{"audio_base_64":{"description":"The base64 encoded audio of the preview.","type":"string","title":"Audio Base 64"},"generated_voice_id":{"description":"The ID of the generated voice. Use it to create a voice from the preview.","type":"string","title":"Generated Voice Id"},"media_type":{"description":"The media type of the preview.","type":"string","title":"Media Type"},"duration_secs":{"description":"The duration of the preview in seconds.","type":"number","title":"Duration Secs"},"language":{"description":"The language of the preview.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"required":["audio_base_64","generated_voice_id","media_type","duration_secs","language"],"title":"VoicePreviewResponseModel"},"VoicePreviewsRequestModel":{"type":"object","properties":{"voice_description":{"description":"Description to use for the created voice.","type":"string","examples":["A sassy squeaky mouse"],"maxLength":1000,"minLength":20,"title":"Voice Description"},"text":{"description":"Text to generate, text length has to be between 100 and 1000.","anyOf":[{"type":"string","maxLength":1000,"minLength":100},{"type":"null"}],"examples":["Every act of kindness, no matter how small, carries value and can make a difference, as no gesture of goodwill is ever wasted."],"title":"Text"},"auto_generate_text":{"description":"Whether to automatically generate a text suitable for the voice description.","type":"boolean","default":false,"title":"Auto Generate Text"},"loudness":{"description":"Controls the volume level of the generated voice. -1 is quietest, 1 is loudest, 0 corresponds to roughly -24 LUFS.","type":"number","default":0.5,"examples":[0.5],"maximum":1,"minimum":-1,"title":"Loudness"},"quality":{"description":"Higher quality results in better voice output but less variety.","type":"number","default":0.9,"examples":[0.9],"maximum":1,"minimum":-1,"title":"Quality"},"seed":{"description":"Random number that controls the voice generation. Same seed with same inputs produces same voice.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[11],"title":"Seed"},"guidance_scale":{"description":"Controls how closely the AI follows the prompt. Lower numbers give the AI more freedom to be creative, while higher numbers force it to stick more to the prompt. High numbers can cause voice to sound artificial or robotic. We recommend to use longer, more detailed prompts at lower Guidance Scale.","type":"number","default":5,"examples":[5],"maximum":100,"minimum":0,"title":"Guidance Scale"},"should_enhance":{"description":"Whether to enhance the voice description using AI to add more detail and improve voice generation quality. When enabled, the system will automatically expand simple prompts into more detailed voice descriptions. Defaults to False","type":"boolean","default":false,"examples":[true],"title":"Should Enhance"}},"required":["voice_description"],"title":"VoicePreviewsRequestModel","x-fern-type-name":"VoiceDesignRequest"},"VoicePreviewsResponseModel":{"type":"object","properties":{"previews":{"description":"The previews of the generated voices.","type":"array","items":{"$ref":"#/components/schemas/VoicePreviewResponseModel"},"title":"Previews"},"text":{"description":"The text used to preview the voices.","type":"string","title":"Text"}},"required":["previews","text"],"title":"VoicePreviewsResponseModel","x-fern-type-name":"VoiceDesignPreviewResponse"},"VoiceRemixRequestModel":{"type":"object","properties":{"voice_description":{"description":"Description of the changes to make to the voice.","type":"string","examples":["Make the voice have a higher pitch."],"maxLength":1000,"minLength":5,"title":"Voice Description"},"text":{"description":"Text to generate, text length has to be between 100 and 1000.","anyOf":[{"type":"string","maxLength":1000,"minLength":100},{"type":"null"}],"examples":["Every act of kindness, no matter how small, carries value and can make a difference, as no gesture of goodwill is ever wasted."],"title":"Text"},"auto_generate_text":{"description":"Whether to automatically generate a text suitable for the voice description.","type":"boolean","default":false,"title":"Auto Generate Text"},"loudness":{"description":"Controls the volume level of the generated voice. -1 is quietest, 1 is loudest, 0 corresponds to roughly -24 LUFS.","type":"number","default":0.5,"examples":[0.5],"maximum":1,"minimum":-1,"title":"Loudness"},"seed":{"description":"Random number that controls the voice generation. Same seed with same inputs produces same voice.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[11],"title":"Seed"},"guidance_scale":{"description":"Controls how closely the AI follows the prompt. Lower numbers give the AI more freedom to be creative, while higher numbers force it to stick more to the prompt. High numbers can cause voice to sound artificial or robotic. We recommend to use longer, more detailed prompts at lower Guidance Scale.","type":"number","default":2,"examples":[5],"maximum":100,"minimum":0,"title":"Guidance Scale"},"stream_previews":{"description":"Determines whether the Text to Voice previews should be included in the response. If true, only the generated IDs will be returned which can then be streamed via the /v1/text-to-voice/:generated_voice_id/stream endpoint.","type":"boolean","default":false,"examples":[true],"title":"Stream Previews"},"remixing_session_id":{"description":"The remixing session id.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Id"},"remixing_session_iteration_id":{"description":"The id of the remixing session iteration where these generations should be attached to. If not provided, a new iteration will be created.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Iteration Id"},"prompt_strength":{"description":"Controls the balance of prompt versus reference audio when generating voice samples. 0 means almost no prompt influence, 1 means almost no reference audio influence. Only supported when using the eleven_ttv_v3 model.","anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"examples":[0.25],"title":"Prompt Strength"}},"required":["voice_description"],"title":"VoiceRemixRequestModel"},"VoiceResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"},"name":{"description":"The name of the voice.","type":"string","title":"Name"},"samples":{"description":"List of samples associated with the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/SampleResponseModel"},"type":"array"},{"type":"null"}],"title":"Samples"},"category":{"description":"The category of the voice.","type":"string","enum":["generated","cloned","premade","professional","famous","high_quality"],"title":"Category"},"fine_tuning":{"description":"Fine-tuning information for the voice.","anyOf":[{"$ref":"#/components/schemas/FineTuningResponseModel"},{"type":"null"}]},"labels":{"description":"Labels associated with the voice.","type":"object","additionalProperties":{"type":"string"},"title":"Labels"},"description":{"description":"The description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"preview_url":{"description":"The preview URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"},"available_for_tiers":{"description":"The tiers the voice is available for.","type":"array","items":{"type":"string"},"title":"Available For Tiers"},"settings":{"description":"The settings of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"sharing":{"description":"The sharing information of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceSharingResponseModel"},{"type":"null"}]},"high_quality_base_model_ids":{"description":"The base model IDs for high-quality voices.","type":"array","items":{"type":"string"},"title":"High Quality Base Model Ids"},"verified_languages":{"description":"The verified languages of the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/VerifiedVoiceLanguageResponseModel"},"type":"array"},{"type":"null"}],"title":"Verified Languages"},"collection_ids":{"description":"The IDs of collections this voice belongs to.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Collection Ids"},"safety_control":{"description":"The safety controls of the voice.","anyOf":[{"type":"string","enum":["NONE","BAN","CAPTCHA","ENTERPRISE_BAN","ENTERPRISE_CAPTCHA"]},{"type":"null"}],"title":"Safety Control"},"voice_verification":{"description":"The voice verification of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceVerificationResponseModel"},{"type":"null"}]},"permission_on_resource":{"description":"The permission on the resource of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Permission On Resource"},"is_owner":{"description":"Whether the voice is owned by the user.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Owner"},"is_legacy":{"description":"Whether the voice is legacy.","type":"boolean","default":false,"title":"Is Legacy"},"is_mixed":{"description":"Whether the voice is mixed.","type":"boolean","default":false,"title":"Is Mixed"},"favorited_at_unix":{"description":"Timestamp when the voice was marked as favorite in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Favorited At Unix"},"created_at_unix":{"description":"The creation time of the voice in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"is_bookmarked":{"description":"Whether the voice is bookmarked by the current user. Only relevant for community (library-copied) voices.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Bookmarked"},"recording_quality":{"description":"The recording quality of the voice as determined by the review pipeline.","anyOf":[{"type":"string","enum":["studio","good","ok","poor","bad"]},{"type":"null"}],"title":"Recording Quality"},"labelling_status":{"description":"The review pipeline status of the voice.","anyOf":[{"type":"string","enum":["in_review","review_complete"]},{"type":"null"}],"title":"Labelling Status"},"recording_quality_reason":{"description":"The reason for the recording quality assessment, as determined by the review pipeline.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Quality Reason"}},"example":{"available_for_tiers":["creator","enterprise"],"category":"professional","description":"A warm, expressive voice with a touch of humor.","fine_tuning":{"is_allowed_to_fine_tune":true,"manual_verification_requested":false,"state":{"eleven_multilingual_v2":"fine_tuned"},"verification_attempts_count":2,"verification_failures":[]},"high_quality_base_model_ids":["eleven_v2_flash","eleven_flash_v2","eleven_turbo_v2_5","eleven_multilingual_v2","eleven_v2_5_flash","eleven_flash_v2_5","eleven_turbo_v2"],"is_legacy":false,"is_mixed":false,"is_owner":false,"labels":{"accent":"American","age":"middle-aged","description":"expressive","gender":"female","use_case":"social media"},"name":"Rachel","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3","settings":{"similarity_boost":1,"speed":1,"stability":1,"style":0,"use_speaker_boost":true},"sharing":{"category":"professional","cloned_by_count":50,"date_unix":1714204800,"description":"A female voice with a soft and friendly tone.","disable_at_unix":1714204800,"enabled_in_library":true,"featured":true,"financial_rewards_enabled":true,"free_users_allowed":true,"history_item_sample_id":"DCwhRBWXzGAHq8TQ4Fs18","labels":{"accent":"American","gender":"female"},"liked_by_count":100,"live_moderation_enabled":true,"moderation_check":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"name":"Rachel","notice_period":30,"original_voice_id":"DCwhRBWXzGAHq8TQ4Fs18","public_owner_id":"DCwhRBWXzGAHq8TQ4Fs18","rate":0.05,"reader_app_enabled":true,"reader_restricted_on":[{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"}],"review_status":"allowed","status":"enabled","voice_mixing_allowed":false,"whitelisted_emails":["example@example.com"]},"verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3"}],"voice_id":"21m00Tcm4TlvDq8ikWAM","voice_verification":{"is_verified":true,"language":"en","requires_verification":false,"verification_attempts":[{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"}],"verification_attempts_count":0,"verification_failures":[]}},"required":["voice_id"],"title":"VoiceResponseModel","x-fern-type-name":"Voice"},"VoiceSamplePreviewResponseModel":{"type":"object","properties":{"audio_base_64":{"description":"The base64 encoded audio.","type":"string","title":"Audio Base 64"},"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"},"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"media_type":{"description":"The media type of the audio.","type":"string","title":"Media Type"},"duration_secs":{"description":"The duration of the audio in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Secs"}},"example":{"audio_base_64":"audio_base_64","duration_secs":5,"media_type":"audio/mpeg","sample_id":"DCwhRBWXzGAHq8TQ4Fs18","voice_id":"DCwhRBWXzGAHq8TQ4Fs18"},"required":["audio_base_64","voice_id","sample_id","media_type"],"title":"VoiceSamplePreviewResponseModel"},"VoiceSampleVisualWaveformResponseModel":{"type":"object","properties":{"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"visual_waveform":{"description":"The visual waveform of the sample, represented as a list of floats.","type":"array","items":{"type":"number"},"title":"Visual Waveform"}},"example":{"sample_id":"DCwhRBWXzGAHq8TQ4Fs18","visual_waveform":[0.1,0.2,0.3,0.4,0.5]},"required":["sample_id","visual_waveform"],"title":"VoiceSampleVisualWaveformResponseModel"},"VoiceSegment":{"type":"object","properties":{"voice_id":{"description":"The voice ID used for this segment","type":"string","title":"Voice Id"},"start_time_seconds":{"description":"Start time of this voice segment","type":"number","title":"Start Time Seconds"},"end_time_seconds":{"description":"End time of this voice segment","type":"number","title":"End Time Seconds"},"character_start_index":{"description":"Start index in the characters array","type":"integer","title":"Character Start Index"},"character_end_index":{"description":"End index in the characters array (exclusive)","type":"integer","title":"Character End Index"},"dialogue_input_index":{"description":"Line of the dialogue (script) that this segment is a part of.","type":"integer","title":"Dialogue Input Index"}},"required":["voice_id","start_time_seconds","end_time_seconds","character_start_index","character_end_index","dialogue_input_index"],"title":"VoiceSegment"},"VoiceSettings":{"type":"object","properties":{"cloning_strength":{"description":"How strongly the dubbed speakers clone the source voices, 0 to 10.","type":"integer","default":7,"maximum":10,"minimum":0,"title":"Cloning Strength"}},"title":"VoiceSettings"},"VoiceSettingsResponseModel":{"type":"object","properties":{"stability":{"description":"Determines how stable the voice is and the randomness between each generation. Lower values introduce broader emotional range for the voice. Higher values can result in a monotonous voice with limited emotion.","default":0.5,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"},"use_speaker_boost":{"description":"This setting boosts the similarity to the original speaker. Using this setting requires a slightly higher computational load, which in turn increases latency.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Speaker Boost"},"similarity_boost":{"description":"Determines how closely the AI should adhere to the original voice when attempting to replicate it.","default":0.75,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Similarity Boost"},"style":{"description":"Determines the style exaggeration of the voice. This setting attempts to amplify the style of the original speaker. It does consume additional computational resources and might increase latency if set to anything other than 0.","default":0,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Style"},"speed":{"description":"Adjusts the speed of the voice. A value of 1.0 is the default speed, while values less than 1.0 slow down the speech, and values greater than 1.0 speed it up.","default":1,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed"}},"example":{"similarity_boost":1,"speed":1,"stability":1,"style":0,"use_speaker_boost":true},"title":"VoiceSettingsResponseModel","x-fern-type-name":"VoiceSettings","required":[]},"VoiceSharingModerationCheckResponseModel":{"type":"object","properties":{"date_checked_unix":{"description":"The date the moderation check was made in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Checked Unix"},"name_value":{"description":"The name value of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Value"},"name_check":{"description":"Whether the name check was successful.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Name Check"},"description_value":{"description":"The description value of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Value"},"description_check":{"description":"Whether the description check was successful.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Description Check"},"sample_ids":{"description":"A list of sample IDs.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sample Ids"},"sample_checks":{"description":"A list of sample checks.","anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Sample Checks"},"captcha_ids":{"description":"A list of captcha IDs.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Captcha Ids"},"captcha_checks":{"description":"A list of CAPTCHA check values.","anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Captcha Checks"}},"example":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"title":"VoiceSharingModerationCheckResponseModel"},"VoiceSharingResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice sharing.","type":"string","enum":["enabled","disabled","copied","copied_disabled"],"title":"Status","x-fern-type-name":"voice_sharing_state"},"history_item_sample_id":{"description":"The sample ID of the history item.","anyOf":[{"type":"string"},{"type":"null"}],"title":"History Item Sample Id"},"date_unix":{"description":"The date of the voice sharing in Unix time.","type":"integer","title":"Date Unix"},"whitelisted_emails":{"description":"A list of whitelisted emails.","type":"array","items":{"type":"string"},"title":"Whitelisted Emails"},"public_owner_id":{"description":"The ID of the public owner.","type":"string","title":"Public Owner Id"},"original_voice_id":{"description":"The ID of the original voice.","type":"string","title":"Original Voice Id"},"financial_rewards_enabled":{"description":"Whether financial rewards are enabled.","type":"boolean","title":"Financial Rewards Enabled"},"free_users_allowed":{"description":"Whether free users are allowed.","type":"boolean","title":"Free Users Allowed"},"live_moderation_enabled":{"description":"Whether live moderation is enabled.","type":"boolean","title":"Live Moderation Enabled"},"rate":{"description":"The rate of the voice sharing.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"},"fiat_rate":{"description":"The rate of the voice sharing in USD per 1000 credits.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Fiat Rate"},"notice_period":{"description":"The notice period of the voice sharing.","type":"integer","title":"Notice Period"},"disable_at_unix":{"description":"The date of the voice sharing in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Disable At Unix"},"voice_mixing_allowed":{"description":"Whether voice mixing is allowed.","type":"boolean","title":"Voice Mixing Allowed"},"featured":{"description":"Whether the voice is featured.","type":"boolean","title":"Featured"},"category":{"description":"The category of the voice.","type":"string","enum":["generated","cloned","premade","professional","famous","high_quality"],"title":"Category"},"reader_app_enabled":{"description":"Whether the reader app is enabled.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reader App Enabled"},"image_url":{"description":"The image URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"ban_reason":{"description":"The ban reason of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Ban Reason"},"liked_by_count":{"description":"The number of likes on the voice.","type":"integer","title":"Liked By Count"},"cloned_by_count":{"description":"The number of clones on the voice.","type":"integer","title":"Cloned By Count"},"name":{"description":"The name of the voice.","type":"string","title":"Name"},"description":{"description":"The description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"description":"The labels of the voice.","type":"object","additionalProperties":{"type":"string"},"title":"Labels"},"review_status":{"description":"The review status of the voice.","type":"string","enum":["not_requested","pending","declined","allowed","allowed_with_changes"],"title":"Review Status","x-fern-type-name":"review_status"},"review_message":{"description":"The review message of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Message"},"enabled_in_library":{"description":"Whether the voice is enabled in the library.","type":"boolean","title":"Enabled In Library"},"instagram_username":{"description":"The Instagram username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instagram Username"},"twitter_username":{"description":"The Twitter/X username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitter Username"},"youtube_username":{"description":"The YouTube username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Youtube Username"},"tiktok_username":{"description":"The TikTok username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiktok Username"},"moderation_check":{"description":"The moderation check of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceSharingModerationCheckResponseModel"},{"type":"null"}]},"reader_restricted_on":{"description":"The reader restricted on of the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/ReaderResourceResponseModel"},"type":"array"},{"type":"null"}],"title":"Reader Restricted On"}},"example":{"category":"professional","cloned_by_count":50,"date_unix":1714204800,"description":"A female voice with a soft and friendly tone.","disable_at_unix":1714204800,"enabled_in_library":true,"featured":true,"financial_rewards_enabled":true,"free_users_allowed":true,"history_item_sample_id":"DCwhRBWXzGAHq8TQ4Fs18","labels":{"accent":"American","gender":"female"},"liked_by_count":100,"live_moderation_enabled":true,"moderation_check":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"name":"Rachel","notice_period":30,"original_voice_id":"DCwhRBWXzGAHq8TQ4Fs18","public_owner_id":"DCwhRBWXzGAHq8TQ4Fs18","rate":0.05,"reader_app_enabled":true,"reader_restricted_on":[{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"}],"review_status":"allowed","status":"enabled","voice_mixing_allowed":false,"whitelisted_emails":["example@example.com"]},"required":[],"title":"VoiceSharingResponseModel","x-fern-type-name":"VoiceSharingResponse"},"VoiceStatisticsResponseModel":{"type":"object","properties":{"project_voice_ref_id":{"description":"The project voice reference ID.","type":"string","title":"Project Voice Ref Id"},"characters_unconverted":{"description":"The number of unconverted characters for this voice.","type":"integer","title":"Characters Unconverted"},"characters_converted":{"description":"The number of converted characters for this voice.","type":"integer","title":"Characters Converted"},"credits_needed_to_convert":{"description":"The number of credits needed to convert the remaining audio for this voice.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Needed To Convert"},"voice_id":{"description":"The voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Voice Id"}},"required":["project_voice_ref_id","characters_unconverted","characters_converted","voice_id"],"title":"VoiceStatisticsResponseModel"},"VoiceVerificationResponseModel":{"type":"object","properties":{"requires_verification":{"description":"Whether the voice requires verification.","type":"boolean","title":"Requires Verification"},"is_verified":{"description":"Whether the voice has been verified.","type":"boolean","title":"Is Verified"},"verification_failures":{"description":"List of verification failures.","type":"array","items":{"type":"string"},"title":"Verification Failures"},"verification_attempts_count":{"description":"The number of verification attempts.","type":"integer","title":"Verification Attempts Count"},"language":{"description":"The language of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"verification_attempts":{"description":"Number of times a verification was attempted.","anyOf":[{"items":{"$ref":"#/components/schemas/VerificationAttemptResponseModel"},"type":"array"},{"type":"null"}],"title":"Verification Attempts"}},"example":{"is_verified":true,"language":"en","requires_verification":false,"verification_attempts":[{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"}],"verification_attempts_count":0,"verification_failures":[]},"required":["requires_verification","is_verified","verification_failures","verification_attempts_count"],"title":"VoiceVerificationResponseModel","x-fern-type-name":"VoiceVerificationResponse"},"VoicemailDetectionToolConfig":{"description":"Allows the agent to detect when a voicemail system is encountered.\n\nThis tool should be invoked by the LLM when it detects that the call has been\nanswered by a voicemail system rather than a human. If a voicemail message\nis configured, it will be played; otherwise the call will end immediately.","type":"object","properties":{"system_tool_type":{"type":"string","default":"voicemail_detection","const":"voicemail_detection","title":"System Tool Type"},"voicemail_message":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voicemail Message"}},"title":"VoicemailDetectionToolConfig"},"WebhookAuthMethodType":{"type":"string","enum":["hmac","oauth2","mtls"],"title":"WebhookAuthMethodType"},"WebhookEventType":{"type":"string","enum":["transcript","audio","call_initiation_failure","unredacted_transcript","unredacted_audio"],"title":"WebhookEventType"},"WebhookHMACSettings":{"description":"Settings for creating an HMAC-authenticated webhook","type":"object","properties":{"auth_type":{"description":"The authentication type for this webhook","type":"string","const":"hmac","title":"Auth Type"},"name":{"description":"The display name for this webhook","type":"string","title":"Name"},"webhook_url":{"description":"The HTTPS callback URL that will be called when this webhook is triggered","type":"string","title":"Webhook Url"},"request_headers":{"description":"Optional custom request headers to include with each webhook delivery","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Request Headers"}},"required":["auth_type","name","webhook_url"],"title":"WebhookHMACSettings"},"WebhookToolApiSchemaConfig-Input":{"type":"object","properties":{"request_headers":{"description":"Headers that should be included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"url":{"description":"The URL that the webhook will be sent to. May include path parameters, e.g. https://example.com/agents/{agent_id}","type":"string","title":"Url"},"method":{"description":"The HTTP method to use for the webhook","type":"string","default":"GET","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"Method"},"path_params_schema":{"description":"Schema for path parameters, if any. The keys should match the placeholders in the URL.","type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"title":"Path Params Schema"},"query_params_schema":{"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","anyOf":[{"$ref":"#/components/schemas/QueryParamsJsonSchema"},{"type":"null"}]},"request_body_schema":{"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","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"response_body_schema":{"description":"Schema describing the expected response body structure. For documentation only; not surfaced to the LLM.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"response_filter":{"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.","anyOf":[{"$ref":"#/components/schemas/ResponseFilter"},{"type":"null"}]},"content_type":{"description":"Content type for the request body. Only applies to POST/PUT/PATCH requests.","type":"string","default":"application/json","enum":["application/json","application/x-www-form-urlencoded"],"title":"Content Type"},"auth_resolved_params":{"description":"URL placeholders resolved from the auth connection (e.g. secrets injected via UrlSecretAuthConnection) rather than from path_params_schema.","type":"array","items":{"type":"string"},"title":"Auth Resolved Params","uniqueItems":true},"auth_connection":{"description":"Optional auth connection to use for authentication with this webhook","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"}},"example":{"method":"GET","path_params_schema":{"agent_id":{"type":"string"}},"query_params_schema":{"param1":{"type":"string"}},"request_body_schema":{"param1":{"type":"string"}},"request_headers":{"Authorization":"Bearer {api_key}"},"url":"https://example.com/agents/{agent_id}"},"required":["url"],"title":"WebhookToolApiSchemaConfig"},"WebhookToolApiSchemaConfig-Output":{"type":"object","properties":{"request_headers":{"description":"Headers that should be included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"url":{"description":"The URL that the webhook will be sent to. May include path parameters, e.g. https://example.com/agents/{agent_id}","type":"string","title":"Url"},"method":{"description":"The HTTP method to use for the webhook","type":"string","default":"GET","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"Method"},"path_params_schema":{"description":"Schema for path parameters, if any. The keys should match the placeholders in the URL.","type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"title":"Path Params Schema"},"query_params_schema":{"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","anyOf":[{"$ref":"#/components/schemas/QueryParamsJsonSchema"},{"type":"null"}]},"request_body_schema":{"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","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"response_body_schema":{"description":"Schema describing the expected response body structure. For documentation only; not surfaced to the LLM.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"response_filter":{"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.","anyOf":[{"$ref":"#/components/schemas/ResponseFilter"},{"type":"null"}]},"content_type":{"description":"Content type for the request body. Only applies to POST/PUT/PATCH requests.","type":"string","default":"application/json","enum":["application/json","application/x-www-form-urlencoded"],"title":"Content Type"},"auth_resolved_params":{"description":"URL placeholders resolved from the auth connection (e.g. secrets injected via UrlSecretAuthConnection) rather than from path_params_schema.","type":"array","items":{"type":"string"},"title":"Auth Resolved Params"},"auth_connection":{"description":"Optional auth connection to use for authentication with this webhook","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"}},"example":{"method":"GET","path_params_schema":{"agent_id":{"type":"string"}},"query_params_schema":{"param1":{"type":"string"}},"request_body_schema":{"param1":{"type":"string"}},"request_headers":{"Authorization":"Bearer {api_key}"},"url":"https://example.com/agents/{agent_id}"},"required":["url"],"title":"WebhookToolApiSchemaConfig"},"WebhookToolConfig-Input":{"description":"A webhook tool is a tool that calls an external webhook from our server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"webhook","const":"webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"api_schema":{"description":"The schema for the outgoing webhoook, including parameters and URL specification","$ref":"#/components/schemas/WebhookToolApiSchemaConfig-Input"}},"example":{"response_timeout_secs":20,"type":"webhook"},"required":["name","description","api_schema"],"title":"WebhookToolConfig"},"WebhookToolConfig-Output":{"description":"A webhook tool is a tool that calls an external webhook from our server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"webhook","const":"webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"api_schema":{"description":"The schema for the outgoing webhoook, including parameters and URL specification","$ref":"#/components/schemas/WebhookToolApiSchemaConfig-Output"}},"example":{"response_timeout_secs":20,"type":"webhook"},"required":["name","description","api_schema"],"title":"WebhookToolConfig"},"WebhookTranscriptFormat":{"type":"string","default":"json","enum":["json","opentelemetry"],"title":"WebhookTranscriptFormat"},"WebhookUsageType":{"type":"string","enum":["ConvAI Agent Settings","ConvAI Settings","Voice Library Removal Notices","Speech to Text","Agent QA Evaluations","ConvAI Alerting"],"title":"WebhookUsageType"},"WhatsAppAuthResponse":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"whatsapp_auth","const":"whatsapp_auth","title":"Auth Type"},"provider":{"type":"string","default":"whatsapp","const":"whatsapp","title":"Provider"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","phone_number_id","id"],"title":"WhatsAppAuthResponse"},"WhatsAppConversationInfo":{"type":"object","properties":{"direction":{"type":"string","default":"unknown","enum":["inbound","outbound","unknown"],"title":"Direction"},"whatsapp_phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp Phone Number Id"},"whatsapp_user_id":{"type":"string","title":"Whatsapp User Id"},"awaiting_first_user_message":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Awaiting First User Message"}},"required":["whatsapp_user_id"],"title":"WhatsAppConversationInfo"},"WhatsAppOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"required":["success","message","conversation_id"],"title":"WhatsAppOutboundCallResponse"},"WhatsAppOutboundMessageResponse":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"}},"required":["conversation_id"],"title":"WhatsAppOutboundMessageResponse"},"WhatsAppTemplateBodyComponentParams":{"type":"object","properties":{"type":{"type":"string","default":"body","const":"body","title":"Type"},"parameters":{"items":{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"},"title":"Parameters","type":"array"}},"required":["parameters"],"title":"WhatsAppTemplateBodyComponentParams"},"WhatsAppTemplateButtonComponentParams":{"type":"object","properties":{"type":{"type":"string","default":"button","const":"button","title":"Type"},"parameters":{"items":{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"},"title":"Parameters","type":"array"},"index":{"type":"integer","title":"Index"},"sub_type":{"type":"string","title":"Sub Type"}},"required":["parameters","index","sub_type"],"title":"WhatsAppTemplateButtonComponentParams"},"WhatsAppTemplateDocumentParam":{"type":"object","properties":{"type":{"type":"string","default":"document","const":"document","title":"Type"},"document":{"$ref":"#/components/schemas/WhatsAppTemplateDocumentParamDetails"}},"required":["document"],"title":"WhatsAppTemplateDocumentParam"},"WhatsAppTemplateDocumentParamDetails":{"type":"object","properties":{"link":{"type":"string","title":"Link"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"required":["link"],"title":"WhatsAppTemplateDocumentParamDetails"},"WhatsAppTemplateHeaderComponentParams":{"type":"object","properties":{"type":{"type":"string","default":"header","const":"header","title":"Type"},"parameters":{"items":{"oneOf":[{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"},{"$ref":"#/components/schemas/WhatsAppTemplateImageParam"},{"$ref":"#/components/schemas/WhatsAppTemplateDocumentParam"},{"$ref":"#/components/schemas/WhatsAppTemplateLocationParam"}],"discriminator":{"propertyName":"type","mapping":{"document":"#/components/schemas/WhatsAppTemplateDocumentParam","image":"#/components/schemas/WhatsAppTemplateImageParam","location":"#/components/schemas/WhatsAppTemplateLocationParam","text":"#/components/schemas/WhatsAppTemplateTextParam"}}},"title":"Parameters","type":"array"}},"required":["parameters"],"title":"WhatsAppTemplateHeaderComponentParams"},"WhatsAppTemplateImageParam":{"type":"object","properties":{"type":{"type":"string","default":"image","const":"image","title":"Type"},"image":{"$ref":"#/components/schemas/WhatsAppTemplateImageParamDetails"}},"required":["image"],"title":"WhatsAppTemplateImageParam"},"WhatsAppTemplateImageParamDetails":{"type":"object","properties":{"link":{"type":"string","title":"Link"}},"required":["link"],"title":"WhatsAppTemplateImageParamDetails"},"WhatsAppTemplateLocationParam":{"type":"object","properties":{"type":{"type":"string","default":"location","const":"location","title":"Type"},"location":{"$ref":"#/components/schemas/WhatsAppTemplateLocationParamDetails"}},"required":["location"],"title":"WhatsAppTemplateLocationParam"},"WhatsAppTemplateLocationParamDetails":{"type":"object","properties":{"latitude":{"type":"string","title":"Latitude"},"longitude":{"type":"string","title":"Longitude"},"name":{"type":"string","title":"Name"},"address":{"type":"string","title":"Address"}},"required":["latitude","longitude","name","address"],"title":"WhatsAppTemplateLocationParamDetails"},"WhatsAppTemplateTextParam":{"type":"object","properties":{"parameter_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter Name"},"type":{"type":"string","default":"text","const":"text","title":"Type"},"text":{"type":"string","title":"Text"}},"required":["text"],"title":"WhatsAppTemplateTextParam"},"WidgetConfig-Input":{"type":"object","properties":{"variant":{"description":"The variant of the widget","default":"full","$ref":"#/components/schemas/EmbedVariant"},"placement":{"description":"The placement of the widget on the screen","default":"bottom-right","$ref":"#/components/schemas/WidgetPlacement"},"expandable":{"description":"Whether the widget is expandable","default":"never","$ref":"#/components/schemas/WidgetExpandable"},"avatar":{"description":"The avatar of the widget","anyOf":[{"$ref":"#/components/schemas/OrbAvatar"},{"$ref":"#/components/schemas/URLAvatar"},{"$ref":"#/components/schemas/ImageAvatar"}],"title":"Avatar"},"feedback_mode":{"description":"The feedback mode of the widget","default":"none","$ref":"#/components/schemas/WidgetFeedbackMode"},"end_feedback":{"description":"Configuration for feedback collected at the end of the conversation","anyOf":[{"$ref":"#/components/schemas/WidgetEndFeedbackConfig"},{"type":"null"}]},"bg_color":{"description":"The background color of the widget","type":"string","default":"#ffffff","title":"Bg Color"},"text_color":{"description":"The text color of the widget","type":"string","default":"#000000","title":"Text Color"},"btn_color":{"description":"The button color of the widget","type":"string","default":"#000000","title":"Btn Color"},"btn_text_color":{"description":"The button text color of the widget","type":"string","default":"#ffffff","title":"Btn Text Color"},"border_color":{"description":"The border color of the widget","type":"string","default":"#e1e1e1","title":"Border Color"},"focus_color":{"description":"The focus color of the widget","type":"string","default":"#000000","title":"Focus Color"},"border_radius":{"description":"The border radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Border Radius"},"btn_radius":{"description":"The button radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Btn Radius"},"action_text":{"description":"The action text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Text"},"start_call_text":{"description":"The start call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call Text"},"end_call_text":{"description":"The end call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call Text"},"expand_text":{"description":"The expand text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand Text"},"listening_text":{"description":"The text to display when the agent is listening","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Text"},"speaking_text":{"description":"The text to display when the agent is speaking","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Text"},"shareable_page_text":{"description":"The text to display when sharing","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Page Text"},"shareable_page_show_terms":{"description":"Whether to show terms and conditions on the shareable page","type":"boolean","default":true,"title":"Shareable Page Show Terms"},"terms_text":{"description":"The text to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"show_avatar_when_collapsed":{"description":"Whether to show the avatar when the widget is collapsed","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Avatar When Collapsed"},"disable_banner":{"description":"Whether to disable the banner","type":"boolean","default":false,"title":"Disable Banner"},"override_link":{"description":"The override link for the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Link"},"markdown_link_allowed_hosts":{"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed.","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Markdown Link Allowed Hosts"},"markdown_link_include_www":{"description":"Whether to automatically include www. variants of allowed hosts","type":"boolean","default":true,"title":"Markdown Link Include Www"},"markdown_link_allow_http":{"description":"Whether to allow http:// in addition to https:// for allowed hosts","type":"boolean","default":true,"title":"Markdown Link Allow Http"},"mic_muting_enabled":{"description":"Whether to enable mic muting","type":"boolean","default":false,"title":"Mic Muting Enabled"},"transcript_enabled":{"description":"Whether the widget should show the conversation transcript as it goes on","type":"boolean","default":false,"title":"Transcript Enabled"},"text_input_enabled":{"description":"Whether the user should be able to send text messages","type":"boolean","default":true,"title":"Text Input Enabled"},"conversation_mode_toggle_enabled":{"description":"Whether to enable the conversation mode toggle in the widget","type":"boolean","default":false,"title":"Conversation Mode Toggle Enabled"},"default_expanded":{"description":"Whether the widget should be expanded by default","type":"boolean","default":false,"title":"Default Expanded"},"always_expanded":{"description":"Whether the widget should always be expanded","type":"boolean","default":false,"title":"Always Expanded"},"dismissible":{"description":"Whether the widget can be dismissed by the user","type":"boolean","default":false,"title":"Dismissible"},"show_agent_status":{"description":"Whether to show agent working/done/error status during tool use","type":"boolean","default":false,"title":"Show Agent Status"},"show_conversation_id":{"description":"Whether to show the conversation ID after disconnection.","type":"boolean","default":true,"title":"Show Conversation Id"},"strip_audio_tags":{"description":"Whether to strip audio markup from messages.","type":"boolean","default":true,"title":"Strip Audio Tags"},"syntax_highlight_theme":{"description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set.","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Syntax Highlight Theme"},"text_contents":{"description":"Text contents of the widget","$ref":"#/components/schemas/WidgetTextContents"},"styles":{"description":"Styles for the widget","$ref":"#/components/schemas/WidgetStyles"},"language_selector":{"description":"Whether to show the language selector","type":"boolean","default":false,"title":"Language Selector"},"supports_text_only":{"description":"Whether the widget can switch to text only mode","type":"boolean","default":true,"title":"Supports Text Only"},"custom_avatar_path":{"description":"The custom avatar path","anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Avatar Path"},"language_presets":{"description":"Language presets for the widget","type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePreset"},"title":"Language Presets"}},"example":{"custom_avatar_path":"https://example.com/avatar.png","language_selector":false},"title":"WidgetConfig","x-fern-type-name":"WidgetConfig"},"WidgetConfig-Output":{"type":"object","properties":{"variant":{"description":"The variant of the widget","default":"full","$ref":"#/components/schemas/EmbedVariant"},"placement":{"description":"The placement of the widget on the screen","default":"bottom-right","$ref":"#/components/schemas/WidgetPlacement"},"expandable":{"description":"Whether the widget is expandable","default":"never","$ref":"#/components/schemas/WidgetExpandable"},"avatar":{"description":"The avatar of the widget","anyOf":[{"$ref":"#/components/schemas/OrbAvatar"},{"$ref":"#/components/schemas/URLAvatar"},{"$ref":"#/components/schemas/ImageAvatar"}],"title":"Avatar"},"feedback_mode":{"description":"The feedback mode of the widget","default":"none","$ref":"#/components/schemas/WidgetFeedbackMode"},"end_feedback":{"description":"Configuration for feedback collected at the end of the conversation","anyOf":[{"$ref":"#/components/schemas/WidgetEndFeedbackConfig"},{"type":"null"}]},"bg_color":{"description":"The background color of the widget","type":"string","default":"#ffffff","title":"Bg Color"},"text_color":{"description":"The text color of the widget","type":"string","default":"#000000","title":"Text Color"},"btn_color":{"description":"The button color of the widget","type":"string","default":"#000000","title":"Btn Color"},"btn_text_color":{"description":"The button text color of the widget","type":"string","default":"#ffffff","title":"Btn Text Color"},"border_color":{"description":"The border color of the widget","type":"string","default":"#e1e1e1","title":"Border Color"},"focus_color":{"description":"The focus color of the widget","type":"string","default":"#000000","title":"Focus Color"},"border_radius":{"description":"The border radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Border Radius"},"btn_radius":{"description":"The button radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Btn Radius"},"action_text":{"description":"The action text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Text"},"start_call_text":{"description":"The start call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call Text"},"end_call_text":{"description":"The end call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call Text"},"expand_text":{"description":"The expand text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand Text"},"listening_text":{"description":"The text to display when the agent is listening","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Text"},"speaking_text":{"description":"The text to display when the agent is speaking","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Text"},"shareable_page_text":{"description":"The text to display when sharing","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Page Text"},"shareable_page_show_terms":{"description":"Whether to show terms and conditions on the shareable page","type":"boolean","default":true,"title":"Shareable Page Show Terms"},"terms_text":{"description":"The text to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"show_avatar_when_collapsed":{"description":"Whether to show the avatar when the widget is collapsed","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Avatar When Collapsed"},"disable_banner":{"description":"Whether to disable the banner","type":"boolean","default":false,"title":"Disable Banner"},"override_link":{"description":"The override link for the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Link"},"markdown_link_allowed_hosts":{"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed.","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Markdown Link Allowed Hosts"},"markdown_link_include_www":{"description":"Whether to automatically include www. variants of allowed hosts","type":"boolean","default":true,"title":"Markdown Link Include Www"},"markdown_link_allow_http":{"description":"Whether to allow http:// in addition to https:// for allowed hosts","type":"boolean","default":true,"title":"Markdown Link Allow Http"},"mic_muting_enabled":{"description":"Whether to enable mic muting","type":"boolean","default":false,"title":"Mic Muting Enabled"},"transcript_enabled":{"description":"Whether the widget should show the conversation transcript as it goes on","type":"boolean","default":false,"title":"Transcript Enabled"},"text_input_enabled":{"description":"Whether the user should be able to send text messages","type":"boolean","default":true,"title":"Text Input Enabled"},"conversation_mode_toggle_enabled":{"description":"Whether to enable the conversation mode toggle in the widget","type":"boolean","default":false,"title":"Conversation Mode Toggle Enabled"},"default_expanded":{"description":"Whether the widget should be expanded by default","type":"boolean","default":false,"title":"Default Expanded"},"always_expanded":{"description":"Whether the widget should always be expanded","type":"boolean","default":false,"title":"Always Expanded"},"dismissible":{"description":"Whether the widget can be dismissed by the user","type":"boolean","default":false,"title":"Dismissible"},"show_agent_status":{"description":"Whether to show agent working/done/error status during tool use","type":"boolean","default":false,"title":"Show Agent Status"},"show_conversation_id":{"description":"Whether to show the conversation ID after disconnection.","type":"boolean","default":true,"title":"Show Conversation Id"},"strip_audio_tags":{"description":"Whether to strip audio markup from messages.","type":"boolean","default":true,"title":"Strip Audio Tags"},"syntax_highlight_theme":{"description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set.","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Syntax Highlight Theme"},"text_contents":{"description":"Text contents of the widget","$ref":"#/components/schemas/WidgetTextContents"},"styles":{"description":"Styles for the widget","$ref":"#/components/schemas/WidgetStyles"},"language_selector":{"description":"Whether to show the language selector","type":"boolean","default":false,"title":"Language Selector"},"supports_text_only":{"description":"Whether the widget can switch to text only mode","type":"boolean","default":true,"title":"Supports Text Only"},"custom_avatar_path":{"description":"The custom avatar path","anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Avatar Path"},"language_presets":{"description":"Language presets for the widget","type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePreset"},"title":"Language Presets"}},"example":{"custom_avatar_path":"https://example.com/avatar.png","language_selector":false},"title":"WidgetConfig","x-fern-type-name":"WidgetConfig"},"WidgetConfigResponseModel":{"type":"object","properties":{"variant":{"description":"The variant of the widget","default":"full","$ref":"#/components/schemas/EmbedVariant"},"placement":{"description":"The placement of the widget on the screen","default":"bottom-right","$ref":"#/components/schemas/WidgetPlacement"},"expandable":{"description":"Whether the widget is expandable","default":"never","$ref":"#/components/schemas/WidgetExpandable"},"avatar":{"description":"The avatar of the widget","anyOf":[{"$ref":"#/components/schemas/OrbAvatar"},{"$ref":"#/components/schemas/URLAvatar"},{"$ref":"#/components/schemas/ImageAvatar"}],"title":"Avatar"},"feedback_mode":{"description":"The feedback mode of the widget","default":"none","$ref":"#/components/schemas/WidgetFeedbackMode"},"end_feedback":{"description":"Configuration for feedback collected at the end of the conversation","anyOf":[{"$ref":"#/components/schemas/WidgetEndFeedbackConfig"},{"type":"null"}]},"bg_color":{"description":"The background color of the widget","type":"string","default":"#ffffff","title":"Bg Color"},"text_color":{"description":"The text color of the widget","type":"string","default":"#000000","title":"Text Color"},"btn_color":{"description":"The button color of the widget","type":"string","default":"#000000","title":"Btn Color"},"btn_text_color":{"description":"The button text color of the widget","type":"string","default":"#ffffff","title":"Btn Text Color"},"border_color":{"description":"The border color of the widget","type":"string","default":"#e1e1e1","title":"Border Color"},"focus_color":{"description":"The focus color of the widget","type":"string","default":"#000000","title":"Focus Color"},"border_radius":{"description":"The border radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Border Radius"},"btn_radius":{"description":"The button radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Btn Radius"},"action_text":{"description":"The action text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Text"},"start_call_text":{"description":"The start call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call Text"},"end_call_text":{"description":"The end call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call Text"},"expand_text":{"description":"The expand text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand Text"},"listening_text":{"description":"The text to display when the agent is listening","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Text"},"speaking_text":{"description":"The text to display when the agent is speaking","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Text"},"shareable_page_text":{"description":"The text to display when sharing","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Page Text"},"shareable_page_show_terms":{"description":"Whether to show terms and conditions on the shareable page","type":"boolean","default":true,"title":"Shareable Page Show Terms"},"terms_text":{"description":"The text to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"show_avatar_when_collapsed":{"description":"Whether to show the avatar when the widget is collapsed","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Avatar When Collapsed"},"disable_banner":{"description":"Whether to disable the banner","type":"boolean","default":false,"title":"Disable Banner"},"override_link":{"description":"The override link for the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Link"},"markdown_link_allowed_hosts":{"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed.","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Markdown Link Allowed Hosts"},"markdown_link_include_www":{"description":"Whether to automatically include www. variants of allowed hosts","type":"boolean","default":true,"title":"Markdown Link Include Www"},"markdown_link_allow_http":{"description":"Whether to allow http:// in addition to https:// for allowed hosts","type":"boolean","default":true,"title":"Markdown Link Allow Http"},"mic_muting_enabled":{"description":"Whether to enable mic muting","type":"boolean","default":false,"title":"Mic Muting Enabled"},"transcript_enabled":{"description":"Whether the widget should show the conversation transcript as it goes on","type":"boolean","default":false,"title":"Transcript Enabled"},"text_input_enabled":{"description":"Whether the user should be able to send text messages","type":"boolean","default":true,"title":"Text Input Enabled"},"conversation_mode_toggle_enabled":{"description":"Whether to enable the conversation mode toggle in the widget","type":"boolean","default":false,"title":"Conversation Mode Toggle Enabled"},"default_expanded":{"description":"Whether the widget should be expanded by default","type":"boolean","default":false,"title":"Default Expanded"},"always_expanded":{"description":"Whether the widget should always be expanded","type":"boolean","default":false,"title":"Always Expanded"},"dismissible":{"description":"Whether the widget can be dismissed by the user","type":"boolean","default":false,"title":"Dismissible"},"show_agent_status":{"description":"Whether to show agent working/done/error status during tool use","type":"boolean","default":false,"title":"Show Agent Status"},"show_conversation_id":{"description":"Whether to show the conversation ID after disconnection.","type":"boolean","default":true,"title":"Show Conversation Id"},"strip_audio_tags":{"description":"Whether to strip audio markup from messages.","type":"boolean","default":true,"title":"Strip Audio Tags"},"syntax_highlight_theme":{"description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set.","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Syntax Highlight Theme"},"text_contents":{"description":"Text contents of the widget","$ref":"#/components/schemas/WidgetTextContents"},"styles":{"description":"Styles for the widget","$ref":"#/components/schemas/WidgetStyles"},"language":{"type":"string","title":"Language"},"supported_language_overrides":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Supported Language Overrides"},"language_presets":{"description":"Language presets for the widget","type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePresetResponse"},"title":"Language Presets"},"text_only":{"description":"Whether the agent uses text-only mode","type":"boolean","default":false,"title":"Text Only"},"supports_text_only":{"description":"Whether the agent can be switched to text-only mode","type":"boolean","default":false,"title":"Supports Text Only"},"first_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message"},"use_rtc":{"description":"Whether to use WebRTC for conversation connections","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Rtc"},"file_input_config":{"description":"Configuration for file upload in the widget","$ref":"#/components/schemas/FileInputConfig"}},"example":{"file_input_config":{"enabled":false,"max_files_per_conversation":10},"first_message":"Hello! How can I help you today?","language":"en","language_presets":{},"supported_language_overrides":["es","fr"],"supports_text_only":true,"text_only":false,"use_rtc":false},"required":["language"],"title":"WidgetConfigResponseModel","x-fern-type-name":"WidgetConfigResponse"},"WidgetEndFeedbackConfig":{"type":"object","properties":{"type":{"description":"The type of feedback to collect at the end of the conversation","default":"rating","$ref":"#/components/schemas/WidgetEndFeedbackType"}},"title":"WidgetEndFeedbackConfig"},"WidgetEndFeedbackType":{"type":"string","default":"rating","enum":["rating"],"title":"WidgetEndFeedbackType"},"WidgetExpandable":{"type":"string","default":"never","enum":["never","mobile","desktop","always"],"title":"WidgetExpandable"},"WidgetFeedbackMode":{"type":"string","default":"none","enum":["none","during","end"],"title":"WidgetFeedbackMode"},"WidgetLanguagePreset":{"type":"object","properties":{"text_contents":{"description":"The text contents for the selected language","anyOf":[{"$ref":"#/components/schemas/WidgetTextContents"},{"type":"null"}]},"terms_text":{"description":"The text to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"terms_translation":{"description":"The translation cache for the terms","anyOf":[{"$ref":"#/components/schemas/WidgetTermsTranslation"},{"type":"null"}]}},"title":"WidgetLanguagePreset"},"WidgetLanguagePresetResponse":{"type":"object","properties":{"first_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message"},"text_contents":{"description":"The text contents for the selected language","anyOf":[{"$ref":"#/components/schemas/WidgetTextContents"},{"type":"null"}]},"terms_text":{"description":"The text to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"}},"title":"WidgetLanguagePresetResponse"},"WidgetPlacement":{"type":"string","default":"bottom-right","enum":["top-left","top","top-right","bottom-left","bottom","bottom-right"],"title":"WidgetPlacement"},"WidgetStyles":{"type":"object","properties":{"base":{"description":"The base background color.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base"},"base_hover":{"description":"The color of the base background when hovered.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Hover"},"base_active":{"description":"The color of the base background when active (clicked).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Active"},"base_border":{"description":"The color of the border against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Border"},"base_subtle":{"description":"The color of subtle text against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Subtle"},"base_primary":{"description":"The color of primary text against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Primary"},"base_error":{"description":"The color of error text against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Error"},"accent":{"description":"The accent background color.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"accent_hover":{"description":"The color of the accent background when hovered.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Hover"},"accent_active":{"description":"The color of the accent background when active (clicked).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Active"},"accent_border":{"description":"The color of the border against the accent background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Border"},"accent_subtle":{"description":"The color of subtle text against the accent background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Subtle"},"accent_primary":{"description":"The color of primary text against the accent background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Primary"},"overlay_padding":{"description":"The padding around the edges of the viewport.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Overlay Padding"},"button_radius":{"description":"The radius of the buttons.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Button Radius"},"input_radius":{"description":"The radius of the input fields.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Radius"},"bubble_radius":{"description":"The radius of the chat bubbles.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Bubble Radius"},"sheet_radius":{"description":"The default radius of sheets.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Sheet Radius"},"compact_sheet_radius":{"description":"The radius of the sheet in compact mode.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Compact Sheet Radius"},"dropdown_sheet_radius":{"description":"The radius of the dropdown sheet.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Dropdown Sheet Radius"}},"title":"WidgetStyles"},"WidgetTermsTranslation":{"type":"object","properties":{"source_hash":{"type":"string","title":"Source Hash"},"text":{"type":"string","title":"Text"}},"required":["source_hash","text"],"title":"WidgetTermsTranslation"},"WidgetTextContents":{"type":"object","properties":{"main_label":{"description":"Call to action displayed inside the compact and full variants.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Label"},"start_call":{"description":"Text and ARIA label for the start call button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call"},"start_chat":{"description":"Text and ARIA label for the start chat button (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Chat"},"new_call":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"New Call"},"end_call":{"description":"Text and ARIA label for the end call button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call"},"mute_microphone":{"description":"ARIA label for the mute microphone button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Mute Microphone"},"change_language":{"description":"ARIA label for the change language dropdown.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Change Language"},"collapse":{"description":"ARIA label for the collapse button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Collapse"},"expand":{"description":"ARIA label for the expand button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand"},"copied":{"description":"Text displayed when the user copies a value using the copy button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Copied"},"accept_terms":{"description":"Text and ARIA label for the accept terms button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept Terms"},"dismiss_terms":{"description":"Text and ARIA label for the cancel terms button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Dismiss Terms"},"listening_status":{"description":"Status displayed when the agent is listening.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Status"},"speaking_status":{"description":"Status displayed when the agent is speaking.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Status"},"connecting_status":{"description":"Status displayed when the agent is connecting.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Connecting Status"},"chatting_status":{"description":"Status displayed when the agent is chatting (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Chatting Status"},"input_label":{"description":"ARIA label for the text message input.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Label"},"input_placeholder":{"description":"Placeholder text for the text message input.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Placeholder"},"input_placeholder_text_only":{"description":"Placeholder text for the text message input (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Placeholder Text Only"},"input_placeholder_new_conversation":{"description":"Placeholder text for the text message input when starting a new conversation (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Placeholder New Conversation"},"user_ended_conversation":{"description":"Information message displayed when the user ends the conversation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Ended Conversation"},"agent_ended_conversation":{"description":"Information message displayed when the agent ends the conversation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Ended Conversation"},"conversation_id":{"description":"Text label used next to the conversation ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"error_occurred":{"description":"Text label used when an error occurs.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Occurred"},"copy_id":{"description":"Text and ARIA label used for the copy ID button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Copy Id"},"initiate_feedback":{"description":"Text displayed to prompt the user for feedback.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiate Feedback"},"request_follow_up_feedback":{"description":"Text displayed to request additional feedback details.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Follow Up Feedback"},"thanks_for_feedback":{"description":"Text displayed to thank the user for providing feedback.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Thanks For Feedback"},"thanks_for_feedback_details":{"description":"Additional text displayed explaining the value of user feedback.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Thanks For Feedback Details"},"follow_up_feedback_placeholder":{"description":"Placeholder text for the follow-up feedback input field.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Follow Up Feedback Placeholder"},"submit":{"description":"Text and ARIA label for the submit button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Submit"},"go_back":{"description":"Text and ARIA label for the go back button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Go Back"},"send_message":{"description":"Text and ARIA label for the send message button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Send Message"},"text_mode":{"description":"Text and ARIA label for the switch to text mode button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Mode"},"voice_mode":{"description":"Text and ARIA label for the switch to voice mode button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Mode"},"switched_to_text_mode":{"description":"Toast notification displayed when switching to text mode.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Switched To Text Mode"},"switched_to_voice_mode":{"description":"Toast notification displayed when switching to voice mode.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Switched To Voice Mode"},"copy":{"description":"Text and ARIA label for the copy button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Copy"},"download":{"description":"Text and ARIA label for the download button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Download"},"wrap":{"description":"Text and ARIA label for the wrap toggle button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Wrap"},"agent_working":{"description":"Status text displayed when the agent is processing a tool call.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Working"},"agent_done":{"description":"Status text displayed when the agent finishes processing a tool call.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Done"},"agent_error":{"description":"Status text displayed when the agent encounters an error during a tool call.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Error"},"attach_file":{"description":"Text and ARIA label for the attach file button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Attach File"},"remove_file":{"description":"ARIA label for the remove file button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Remove File"},"file_upload_error":{"description":"Error message displayed when a file fails to upload.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Upload Error"},"file_type_unsupported":{"description":"Error message displayed when an unsupported file type is selected. Followed by the list of accepted types.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Type Unsupported"},"file_too_large":{"description":"Error message displayed when a file exceeds the maximum size limit.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Too Large"},"file_limit_reached":{"description":"Error message displayed when the maximum number of files for a conversation is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Limit Reached"},"typing_indicator":{"description":"Status text displayed while the agent is typing.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Typing Indicator"}},"title":"WidgetTextContents"},"WordTimestamp":{"type":"object","properties":{"word":{"type":"string","title":"Word"},"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"}},"required":["word","start_ms","end_ms"],"title":"WordTimestamp"},"WorkflowEdgeModel-Input":{"type":"object","properties":{"source":{"description":"ID of the source node.","type":"string","title":"Source"},"target":{"description":"ID of the target node.","type":"string","title":"Target"},"forward_condition":{"description":"Condition that must be met for the edge to be traversed in the forward direction (source to target).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Input","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Input","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Input","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Input","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Input","llm":"#/components/schemas/WorkflowLLMConditionModel-Input","result":"#/components/schemas/WorkflowResultConditionModel-Input","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Input"}}},{"type":"null"}],"title":"Forward Condition"},"backward_condition":{"description":"Condition that must be met for the edge to be traversed in the backward direction (target to source).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Input","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Input","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Input","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Input","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Input","llm":"#/components/schemas/WorkflowLLMConditionModel-Input","result":"#/components/schemas/WorkflowResultConditionModel-Input","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Input"}}},{"type":"null"}],"title":"Backward Condition"}},"required":["source","target"],"title":"WorkflowEdgeModel"},"WorkflowEdgeModel-Output":{"type":"object","properties":{"source":{"description":"ID of the source node.","type":"string","title":"Source"},"target":{"description":"ID of the target node.","type":"string","title":"Target"},"forward_condition":{"description":"Condition that must be met for the edge to be traversed in the forward direction (source to target).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Output","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Output","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Output","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Output","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Output","llm":"#/components/schemas/WorkflowLLMConditionModel-Output","result":"#/components/schemas/WorkflowResultConditionModel-Output","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Output"}}},{"type":"null"}],"title":"Forward Condition"},"backward_condition":{"description":"Condition that must be met for the edge to be traversed in the backward direction (target to source).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Output","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Output","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Output","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Output","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Output","llm":"#/components/schemas/WorkflowLLMConditionModel-Output","result":"#/components/schemas/WorkflowResultConditionModel-Output","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Output"}}},{"type":"null"}],"title":"Backward Condition"}},"required":["source","target","forward_condition","backward_condition"],"title":"WorkflowEdgeModel"},"WorkflowEndNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"end","const":"end","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"title":"WorkflowEndNodeModel"},"WorkflowEndNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"end","const":"end","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["type","position","edge_order"],"title":"WorkflowEndNodeModel"},"WorkflowExpressionConditionModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"expression","const":"expression","title":"Type"},"expression":{"description":"Expression to evaluate.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["expression"],"title":"WorkflowExpressionConditionModel"},"WorkflowExpressionConditionModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"expression","const":"expression","title":"Type"},"expression":{"description":"Expression to evaluate.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["label","type","expression"],"title":"WorkflowExpressionConditionModel"},"WorkflowFeaturesUsageCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"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"}},"title":"WorkflowFeaturesUsageCommonModel"},"WorkflowLLMConditionModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"condition":{"description":"Condition to evaluate","type":"string","examples":["User's last message contains a question about our pricing.","User provided their email address."],"title":"Condition"}},"required":["condition"],"title":"WorkflowLLMConditionModel"},"WorkflowLLMConditionModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"condition":{"description":"Condition to evaluate","type":"string","examples":["User's last message contains a question about our pricing.","User provided their email address."],"title":"Condition"}},"required":["label","type","condition"],"title":"WorkflowLLMConditionModel"},"WorkflowOverrideAgentNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"override_agent","const":"override_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"conversation_config":{"description":"Configuration overrides applied while the subagent is conducting the conversation.","$ref":"#/components/schemas/ConversationalConfigAPIModelWorkflowOverride-Input"},"additional_prompt":{"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.","type":"string","title":"Additional Prompt"},"additional_knowledge_base":{"description":"Additional knowledge base documents that the subagent has access to. These will be used in addition to the main agent's documents.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Additional Knowledge Base"},"additional_tool_ids":{"description":"IDs of additional tools that the subagent has access to. These will be used in addition to the main agent's tools.","type":"array","items":{"type":"string"},"title":"Additional Tool Ids"},"label":{"description":"Human-readable label for the node used throughout the UI.","type":"string","title":"Label"},"entry_behavior":{"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.","default":"auto","$ref":"#/components/schemas/EntryBehavior"}},"required":["label"],"title":"WorkflowOverrideAgentNodeModel"},"WorkflowOverrideAgentNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"override_agent","const":"override_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"conversation_config":{"description":"Configuration overrides applied while the subagent is conducting the conversation.","$ref":"#/components/schemas/ConversationalConfigAPIModelWorkflowOverride-Output"},"additional_prompt":{"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.","type":"string","title":"Additional Prompt"},"additional_knowledge_base":{"description":"Additional knowledge base documents that the subagent has access to. These will be used in addition to the main agent's documents.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Additional Knowledge Base"},"additional_tool_ids":{"description":"IDs of additional tools that the subagent has access to. These will be used in addition to the main agent's tools.","type":"array","items":{"type":"string"},"title":"Additional Tool Ids"},"label":{"description":"Human-readable label for the node used throughout the UI.","type":"string","title":"Label"},"entry_behavior":{"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.","default":"auto","$ref":"#/components/schemas/EntryBehavior"}},"required":["type","position","edge_order","conversation_config","additional_prompt","additional_knowledge_base","additional_tool_ids","label","entry_behavior"],"title":"WorkflowOverrideAgentNodeModel"},"WorkflowPhoneNumberNodeModel-Input":{"type":"object","properties":{"custom_sip_headers":{"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/CustomSIPHeader"},{"$ref":"#/components/schemas/CustomSIPHeaderWithDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/CustomSIPHeaderWithDynamicVariable","static":"#/components/schemas/CustomSIPHeader"}}},"maxItems":20,"title":"Custom Sip Headers"},"transfer_destination":{"discriminator":{"propertyName":"type","mapping":{"phone":"#/components/schemas/PhoneNumberTransferDestination","phone_dynamic_variable":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination","sip_uri":"#/components/schemas/SIPUriTransferDestination","sip_uri_dynamic_variable":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}},"oneOf":[{"$ref":"#/components/schemas/PhoneNumberTransferDestination"},{"$ref":"#/components/schemas/SIPUriTransferDestination"},{"$ref":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination"},{"$ref":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}],"title":"Transfer Destination"},"transfer_type":{"default":"conference","$ref":"#/components/schemas/TransferTypeEnum"},"uui":{"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.","anyOf":[{"$ref":"#/components/schemas/UUITransferConfig"},{"type":"null"}]},"post_dial_digits":{"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.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/PostDialDigitsStatic"},{"$ref":"#/components/schemas/PostDialDigitsDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/PostDialDigitsDynamicVariable","static":"#/components/schemas/PostDialDigitsStatic"}}},{"type":"null"}],"title":"Post Dial Digits"},"type":{"type":"string","default":"phone_number","const":"phone_number","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["transfer_destination"],"title":"WorkflowPhoneNumberNodeModel"},"WorkflowPhoneNumberNodeModel-Output":{"type":"object","properties":{"custom_sip_headers":{"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/CustomSIPHeader"},{"$ref":"#/components/schemas/CustomSIPHeaderWithDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/CustomSIPHeaderWithDynamicVariable","static":"#/components/schemas/CustomSIPHeader"}}},"maxItems":20,"title":"Custom Sip Headers"},"transfer_destination":{"discriminator":{"propertyName":"type","mapping":{"phone":"#/components/schemas/PhoneNumberTransferDestination","phone_dynamic_variable":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination","sip_uri":"#/components/schemas/SIPUriTransferDestination","sip_uri_dynamic_variable":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}},"oneOf":[{"$ref":"#/components/schemas/PhoneNumberTransferDestination"},{"$ref":"#/components/schemas/SIPUriTransferDestination"},{"$ref":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination"},{"$ref":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}],"title":"Transfer Destination"},"transfer_type":{"default":"conference","$ref":"#/components/schemas/TransferTypeEnum"},"uui":{"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.","anyOf":[{"$ref":"#/components/schemas/UUITransferConfig"},{"type":"null"}]},"post_dial_digits":{"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.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/PostDialDigitsStatic"},{"$ref":"#/components/schemas/PostDialDigitsDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/PostDialDigitsDynamicVariable","static":"#/components/schemas/PostDialDigitsStatic"}}},{"type":"null"}],"title":"Post Dial Digits"},"type":{"type":"string","default":"phone_number","const":"phone_number","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["custom_sip_headers","transfer_destination","transfer_type","uui","post_dial_digits","type","position","edge_order"],"title":"WorkflowPhoneNumberNodeModel"},"WorkflowResultConditionModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"result","const":"result","title":"Type"},"successful":{"description":"Whether all tools in the previously executed tool node were executed successfully.","type":"boolean","title":"Successful"}},"required":["successful"],"title":"WorkflowResultConditionModel"},"WorkflowResultConditionModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"result","const":"result","title":"Type"},"successful":{"description":"Whether all tools in the previously executed tool node were executed successfully.","type":"boolean","title":"Successful"}},"required":["label","type","successful"],"title":"WorkflowResultConditionModel"},"WorkflowStandaloneAgentNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"standalone_agent","const":"standalone_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"agent_id":{"description":"The ID of the agent to transfer the conversation to. None means transfer within the current agent.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"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.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Node Id"},"delay_ms":{"description":"Artificial delay in milliseconds applied before transferring the conversation.","type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"description":"Optional message sent to the user before the transfer is initiated.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"description":"Whether to enable the transferred agent to send its configured first message after the transfer.","type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"title":"WorkflowStandaloneAgentNodeModel"},"WorkflowStandaloneAgentNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"standalone_agent","const":"standalone_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"agent_id":{"description":"The ID of the agent to transfer the conversation to. None means transfer within the current agent.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"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.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Node Id"},"delay_ms":{"description":"Artificial delay in milliseconds applied before transferring the conversation.","type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"description":"Optional message sent to the user before the transfer is initiated.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"description":"Whether to enable the transferred agent to send its configured first message after the transfer.","type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["type","position","edge_order","agent_id","node_id","delay_ms","transfer_message","enable_transferred_agent_first_message","preserve_client_tts_overrides"],"title":"WorkflowStandaloneAgentNodeModel"},"WorkflowStartNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"start","const":"start","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"title":"WorkflowStartNodeModel"},"WorkflowStartNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"start","const":"start","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["type","position","edge_order"],"title":"WorkflowStartNodeModel"},"WorkflowToolEdgeStepModel":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"edge","const":"edge","title":"Type"},"edge_id":{"type":"string","title":"Edge Id"},"target_node_id":{"type":"string","title":"Target Node Id"}},"required":["step_latency_secs","edge_id","target_node_id"],"title":"WorkflowToolEdgeStepModel"},"WorkflowToolLocator":{"type":"object","properties":{"tool_id":{"type":"string","title":"Tool Id"}},"required":["tool_id"],"title":"WorkflowToolLocator"},"WorkflowToolMaxIterationsExceededStepModel":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"max_iterations_exceeded","const":"max_iterations_exceeded","title":"Type"},"max_iterations":{"type":"integer","title":"Max Iterations"}},"required":["step_latency_secs","max_iterations"],"title":"WorkflowToolMaxIterationsExceededStepModel"},"WorkflowToolNestedToolsStepModel-Input":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"nested_tools","const":"nested_tools","title":"Type"},"node_id":{"type":"string","title":"Node Id"},"requests":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Input"},"title":"Requests"},"results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Input"}]},"title":"Results"},"is_successful":{"type":"boolean","title":"Is Successful"}},"required":["step_latency_secs","node_id","requests","results","is_successful"],"title":"WorkflowToolNestedToolsStepModel"},"WorkflowToolNestedToolsStepModel-Output":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"nested_tools","const":"nested_tools","title":"Type"},"node_id":{"type":"string","title":"Node Id"},"requests":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Output"},"title":"Requests"},"results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output"}]},"title":"Results"},"is_successful":{"type":"boolean","title":"Is Successful"}},"required":["step_latency_secs","node_id","requests","results","is_successful"],"title":"WorkflowToolNestedToolsStepModel"},"WorkflowToolNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"tools":{"description":"List of tools to execute in parallel. The entire node is considered successful if all tools are executed successfully.","type":"array","items":{"$ref":"#/components/schemas/WorkflowToolLocator"},"title":"Tools"}},"title":"WorkflowToolNodeModel"},"WorkflowToolNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"tools":{"description":"List of tools to execute in parallel. The entire node is considered successful if all tools are executed successfully.","type":"array","items":{"$ref":"#/components/schemas/WorkflowToolLocator"},"title":"Tools"}},"required":["type","position","edge_order","tools"],"title":"WorkflowToolNodeModel"},"WorkflowToolResponseModel-Input":{"description":"A common model for workflow tool responses.","type":"object","properties":{"steps":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WorkflowToolEdgeStepModel"},{"$ref":"#/components/schemas/WorkflowToolNestedToolsStepModel-Input"},{"$ref":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel"}],"discriminator":{"propertyName":"type","mapping":{"edge":"#/components/schemas/WorkflowToolEdgeStepModel","max_iterations_exceeded":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel","nested_tools":"#/components/schemas/WorkflowToolNestedToolsStepModel-Input"}}},"title":"Steps"}},"title":"WorkflowToolResponseModel"},"WorkflowToolResponseModel-Output":{"description":"A common model for workflow tool responses.","type":"object","properties":{"steps":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WorkflowToolEdgeStepModel"},{"$ref":"#/components/schemas/WorkflowToolNestedToolsStepModel-Output"},{"$ref":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel"}],"discriminator":{"propertyName":"type","mapping":{"edge":"#/components/schemas/WorkflowToolEdgeStepModel","max_iterations_exceeded":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel","nested_tools":"#/components/schemas/WorkflowToolNestedToolsStepModel-Output"}}},"title":"Steps"}},"title":"WorkflowToolResponseModel"},"WorkflowUnconditionalModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"unconditional","const":"unconditional","title":"Type"}},"title":"WorkflowUnconditionalModel"},"WorkflowUnconditionalModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"unconditional","const":"unconditional","title":"Type"}},"required":["label","type"],"title":"WorkflowUnconditionalModel"},"WorkspaceAnalyticsQueryResponseModel":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"string"},"title":"Columns"},"column_types":{"type":"array","items":{"type":"string","enum":["String","Float","DateTime","Int","Bool","JSON","Map","Array"]},"title":"Column Types"},"rows":{"type":"array","items":{"items":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"},{"type":"null"}]},"type":"array"},"title":"Rows"},"column_units":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ColumnUnit"},{"type":"null"}]},"title":"Column Units"}},"required":["columns","column_types","rows","column_units"],"title":"WorkspaceAnalyticsQueryResponseModel"},"WorkspaceApiKeyListResponseModel":{"type":"object","properties":{"api-keys":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceApiKeyResponseModel"},"title":"Api-Keys"}},"required":["api-keys"],"title":"WorkspaceApiKeyListResponseModel"},"WorkspaceApiKeyResponseModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"hint":{"type":"string","title":"Hint"},"key_id":{"type":"string","title":"Key Id"},"service_account_user_id":{"type":"string","title":"Service Account User Id"},"created_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"is_disabled":{"type":"boolean","default":false,"title":"Is Disabled"},"permissions":{"anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"null"}],"title":"Permissions"},"disable_reason":{"anyOf":[{"$ref":"#/components/schemas/LockReason"},{"type":"null"}]},"character_limit":{"description":"Maximum number of credits allowed in the current billing period.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Limit"},"character_count":{"description":"Credits already used in the current billing period.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Count"},"hashed_xi_api_key":{"type":"string","title":"Hashed Xi Api Key"},"allowed_ips":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1},{"type":"null"}],"title":"Allowed Ips"},"third_party_disable_allowed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Third Party Disable Allowed"}},"required":["name","hint","key_id","service_account_user_id","hashed_xi_api_key"],"title":"WorkspaceApiKeyResponseModel"},"WorkspaceAuditLogEntryResponse":{"description":"Audit log entry with Firestore document ID for API responses.","type":"object","properties":{"metadata":{"description":"Event metadata","type":"object","additionalProperties":true,"title":"Metadata"},"time":{"description":"Event time in milliseconds since epoch","type":"integer","title":"Time"},"activity_id":{"description":"Activity ID","anyOf":[{"$ref":"#/components/schemas/AccountChangeActivityId"},{"$ref":"#/components/schemas/AuthenticationActivityId"},{"$ref":"#/components/schemas/EntityManagementActivityId"},{"$ref":"#/components/schemas/UserAccessManagementActivityId"},{"$ref":"#/components/schemas/GroupManagementActivityId"}],"title":"Activity Id"},"activity_name":{"description":"Activity name","type":"string","title":"Activity Name"},"category_name":{"description":"Event category","type":"string","default":"Identity & Access Management","title":"Category Name"},"category_uid":{"description":"Category UID for IAM","type":"integer","default":3,"title":"Category Uid"},"class_name":{"description":"Event class name","type":"string","default":"","title":"Class Name"},"class_uid":{"description":"Event class UID","type":"integer","default":0,"title":"Class Uid"},"severity_id":{"description":"Severity level","default":1,"$ref":"#/components/schemas/SeverityId"},"status_id":{"description":"Status of the action","$ref":"#/components/schemas/StatusId"},"actor":{"description":"Actor performing the action","$ref":"#/components/schemas/ActorModel"},"device":{"description":"Device information","anyOf":[{"$ref":"#/components/schemas/DeviceModel"},{"type":"null"}]},"http_request":{"description":"HTTP request details","anyOf":[{"$ref":"#/components/schemas/HttpRequestModel"},{"type":"null"}]},"message":{"description":"Human-readable event description","type":"string","title":"Message"},"unmapped":{"description":"Attributes not mapped to OCSF","type":"object","additionalProperties":true,"title":"Unmapped"},"id":{"description":"Firestore document ID","type":"string","title":"Id"},"time_dt":{"description":"Event time in human-readable RFC 3339 format, derived from 'time'.","type":"string","readOnly":true,"title":"Time Dt"},"type_uid":{"description":"OCSF type_uid is class_uid * 100 + activity_id.","type":"integer","readOnly":true,"title":"Type Uid"},"type_name":{"description":"OCSF type_name combines class_name and activity_name.","type":"string","readOnly":true,"title":"Type Name"}},"required":["activity_id","activity_name","status_id","actor","message","id","time_dt","type_uid","type_name"],"title":"WorkspaceAuditLogEntryResponse"},"WorkspaceAuditLogsPageResponse":{"description":"Paginated workspace audit log response.","type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceAuditLogEntryResponse"},"title":"Entries"},"has_more":{"type":"boolean","title":"Has More"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["entries","has_more","next_cursor"],"title":"WorkspaceAuditLogsPageResponse"},"WorkspaceBatchCallsResponse":{"type":"object","properties":{"batch_calls":{"type":"array","items":{"$ref":"#/components/schemas/BatchCallResponse"},"title":"Batch Calls"},"next_doc":{"description":"The next document, used to paginate through the batch calls","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Doc"},"has_more":{"description":"Whether there are more batch calls to paginate through","type":"boolean","default":false,"title":"Has More"}},"required":["batch_calls"],"title":"WorkspaceBatchCallsResponse"},"WorkspaceCreateApiKeyResponseModel":{"type":"object","properties":{"xi-api-key":{"type":"string","title":"Xi-Api-Key"},"key_id":{"type":"string","title":"Key Id"}},"required":["xi-api-key","key_id"],"title":"WorkspaceCreateApiKeyResponseModel"},"WorkspaceCreateServiceAccountResponseModel":{"type":"object","properties":{"service-account-user-id":{"type":"string","title":"Service-Account-User-Id"}},"required":["service-account-user-id"],"title":"WorkspaceCreateServiceAccountResponseModel"},"WorkspaceCreateWebhookResponseModel":{"type":"object","properties":{"webhook_id":{"type":"string","title":"Webhook Id"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"}},"required":["webhook_id"],"title":"WorkspaceCreateWebhookResponseModel"},"WorkspaceGroupByNameResponseModel":{"type":"object","properties":{"name":{"description":"The name of the workspace group.","type":"string","title":"Name"},"id":{"description":"The ID of the workspace group.","type":"string","title":"Id"},"members_emails":{"description":"The emails of the members of the workspace group.","type":"array","items":{"type":"string"},"title":"Members Emails"}},"example":{"id":"1234567890","members_emails":["john.doe@example.com","jane.smith@example.com"],"name":"My Workspace Group"},"required":["name","id","members_emails"],"title":"WorkspaceGroupByNameResponseModel"},"WorkspaceGroupPermission":{"type":"string","enum":["text_to_speech","speech_to_speech","speech_to_text","voice_lab","sound_effects","projects","voiceover_studio","dubbing","audio_native","conversational_ai","conversational_ai_read","voice_isolator","ai_speech_classifier","synthid_detector","add_voice_from_voice_library","create_instant_voice_clone","create_professional_voice_clone","create_user_api_key","publish_studio_project","music","image_video_generation","flows","templates","share_voice_externally","publish_voice_to_voice_library","view_fiat_balance","workspace_analytics_full_read","service_accounts_manage","webhooks_manage","group_members_manage","workspace_members_invite","workspace_members_remove","terms_of_service_accept","audit_log_read","conversation_privacy_manage","copy_resources_cross_workspace","voice_design"],"title":"WorkspaceGroupPermission"},"WorkspaceGroupResponseModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"members":{"type":"array","items":{"type":"string"},"title":"Members"},"permissions":{"anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceGroupPermission"},"type":"array"},{"type":"null"}],"title":"Permissions"},"group_usage_limit":{"anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"},{"type":"null"}],"title":"Group Usage Limit"},"group_pvc_limit":{"anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"},{"type":"null"}],"title":"Group Pvc Limit"},"character_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Count"},"scim_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scim External Id"},"is_scim_synced":{"type":"boolean","default":false,"title":"Is Scim Synced"},"scim_group":{"anyOf":[{"$ref":"#/components/schemas/ScimGroupResponseModel"},{"type":"null"}]},"scim_frozen":{"type":"boolean","default":false,"title":"Scim Frozen"}},"required":["name","id","members","permissions"],"title":"WorkspaceGroupResponseModel"},"WorkspaceMemberResponseModel":{"description":"Public workspace member fields exposed via GET /v1/workspace/members.","type":"object","properties":{"user_id":{"description":"The user ID of the workspace member.","type":"string","title":"User Id"},"email":{"description":"The email address of the workspace member.","type":"string","title":"Email"},"first_name":{"description":"The first name of the workspace member, if available.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"seat_type":{"description":"The seat type (role) of the workspace member.","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}]},"is_owner":{"description":"Whether the member is the workspace owner.","type":"boolean","title":"Is Owner"},"is_locked":{"description":"Whether the member's account is locked in this workspace.","type":"boolean","title":"Is Locked"}},"required":["user_id","email","first_name","seat_type","is_owner","is_locked"],"title":"WorkspaceMemberResponseModel"},"WorkspaceResourceType":{"description":"Resource types that can be shared in the workspace. The name always need to match the collection names","type":"string","enum":["voice","voice_collection","pronunciation_dictionary","dubbing","project","convai_agents","convai_knowledge_base_documents","convai_tools","convai_settings","convai_secrets","workspace_auth_connections","convai_phone_numbers","convai_mcp_servers","convai_api_integration_connections","convai_api_integration_trigger_connections","convai_batch_calls","convai_agent_response_tests","convai_test_suite_invocations","convai_crawl_jobs","convai_crawl_tasks","convai_kb_external_sync_jobs","convai_whatsapp_accounts","convai_agent_versions","convai_agent_branches","convai_agent_versions_deployments","convai_memory_entries","convai_coaching_proposals","convai_templates","dashboard","dashboard_configuration","convai_agent_drafts","resource_locators","assets","content_generations","content_templates","songs","transcription_tasks","avatars","avatar_video_generations","resource_collection","studio_projects","convai_analysis_items"],"title":"WorkspaceResourceType"},"WorkspaceServiceAccountListResponseModel":{"type":"object","properties":{"service-accounts":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceServiceAccountResponseModel"},"title":"Service-Accounts"}},"required":["service-accounts"],"title":"WorkspaceServiceAccountListResponseModel"},"WorkspaceServiceAccountResponseModel":{"type":"object","properties":{"service_account_user_id":{"type":"string","title":"Service Account User Id"},"name":{"type":"string","title":"Name"},"created_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"api-keys":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceApiKeyResponseModel"},"title":"Api-Keys"},"default_sharing_groups":{"type":"array","items":{"$ref":"#/components/schemas/DefaultSharingGroupResponseModel"},"default":[],"title":"Default Sharing Groups"}},"required":["service_account_user_id","name","api-keys"],"title":"WorkspaceServiceAccountResponseModel"},"WorkspaceWebhookEventType":{"type":"string","enum":["voice_library_removal_notice","speech_to_text","agent_qa"],"title":"WorkspaceWebhookEventType"},"WorkspaceWebhookListResponseModel":{"type":"object","properties":{"webhooks":{"description":"List of webhooks currently configured for the workspace","type":"array","items":{"$ref":"#/components/schemas/WorkspaceWebhookResponseModel"},"title":"Webhooks"}},"example":{"webhooks":[{"auth_type":"hmac","created_at_unix":123456789,"is_auto_disabled":false,"is_disabled":false,"most_recent_failure_error_code":404,"most_recent_failure_timestamp":123456799,"name":"My Webhook","usage":[{"usage_type":"ConvAI Settings"}],"webhook_id":"123","webhook_url":"https://elevenlabs.io/example-callback-url"}]},"required":["webhooks"],"title":"WorkspaceWebhookListResponseModel"},"WorkspaceWebhookResponseModel":{"type":"object","properties":{"name":{"description":"The display name for this webhook.","type":"string","title":"Name"},"webhook_id":{"description":"The unique ID for this webhook.","type":"string","title":"Webhook Id"},"webhook_url":{"description":"The HTTPS callback URL that is called when this webhook is triggered in the platform.","type":"string","title":"Webhook Url"},"is_disabled":{"description":"Whether the webhook has been manually disabled by a user.","type":"boolean","title":"Is Disabled"},"is_auto_disabled":{"description":"Whether the webhook has been automatically disabled due to repeated consecutive failures over a long period of time.","type":"boolean","title":"Is Auto Disabled"},"created_at_unix":{"description":"Original creation time of the webhook.","type":"integer","title":"Created At Unix"},"auth_type":{"description":"The authentication mode used to secure the webhook.","$ref":"#/components/schemas/WebhookAuthMethodType"},"usage":{"description":"The list of products that are currently configured to trigger this webhook.","anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceWebhookUsageResponseModel"},"type":"array"},{"type":"null"}],"title":"Usage"},"events":{"description":"The workspace-level events this webhook is currently subscribed to. Only populated when usages are requested.","anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceWebhookEventType"},"type":"array"},{"type":"null"}],"title":"Events"},"most_recent_failure_error_code":{"description":"The most recent error code returned from the callback URL.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Most Recent Failure Error Code"},"most_recent_failure_timestamp":{"description":"The most recent time the webhook failed, failures are any non-200 codes returned by the callback URL.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Most Recent Failure Timestamp"}},"required":["name","webhook_id","webhook_url","is_disabled","is_auto_disabled","created_at_unix","auth_type"],"title":"WorkspaceWebhookResponseModel"},"WorkspaceWebhookUsageResponseModel":{"type":"object","properties":{"usage_type":{"$ref":"#/components/schemas/WebhookUsageType"}},"required":["usage_type"],"title":"WorkspaceWebhookUsageResponseModel"},"PromptAgentDBModel":{"properties":{"tools":{"x-fern-type":"unknown"}}},"FeedbackResponseModel":{"x-fern-type-name":"FeedbackItem"},"HistoryItemResponseModel":{"x-fern-type-name":"HistoryItemResponse","properties":{"state":{"x-fern-type-name":"HistoryItemState"},"voice_category":{"x-fern-type-name":"VoiceCategory"}}},"Age":{"x-fern-type-name":"Age"},"Gender":{"x-fern-type-name":"Gender"},"Body_Add_project_v1_projects_add_post":{"x-fern-type-name":"AddProjectRequest"},"Body_Add_sharing_voice_v1_voices_add__public_user_id___voice_id__post":{"x-fern-type-name":"AddSharingVoiceRequest"},"Body_Create_a_previously_generated_voice_v1_voice_generation_create_voice_post":{"x-fern-type-name":"CreatePreviouslyGeneratedVoiceRequest"},"Body_Creates_AudioNative_enabled_project__v1_audio_native_post":{"x-fern-type-name":"CreateAudioNativeProjectRequest"},"Body_Generate_a_random_voice_v1_voice_generation_generate_voice_post":{"x-fern-type-name":"GenerateVoiceRequest"},"Body_Text_to_speech_v1_text_to_speech__voice_id__post":{"x-fern-type-name":"TextToSpeechRequest"},"Body_Text_to_speech_v1_text_to_speech__voice_id__stream_post":{"x-fern-type-name":"TextToSpeechStreamRequest"},"Body_Update_Pronunciation_Dictionaries_v1_projects__project_id__update_pronunciation_dictionaries_post":{"x-fern-type-name":"UpdatePronunciationDictionariesRequest"},"GetPhoneNumberResponseModel":{"x-fern-type-name":"GetPhoneNumberResponse"},"VoiceGenerationParameterOptionResponseModel":{"x-fern-type-name":"VoiceGenerationParameterOptionResponse"},"VoiceGenerationParameterResponseModel":{"x-fern-type-name":"VoiceGenerationParameterResponse"},"Body_Text_to_speech_with_timestamps_v1_text_to_speech__voice_id__with_timestamps_post":{"x-fern-type-name":"TextToSpeechWithTimestampsRequest"},"Body_Text_to_speech_streaming_with_timestamps_v1_text_to_speech__voice_id__stream_with_timestamps_post":{"x-fern-type-name":"TextToSpeechStreamWithTimestampsRequest"},"Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_create_voice_from_preview_post":{"x-fern-type-name":"SaveVoicePreviewRequest"},"Body_Edit_voice_settings_v1_voices__voice_id__settings_edit_post":{"x-fern-type-name":"EditVoiceSettingsRequest"},"Body_Get_Chapters_v1_studio_projects__project_id__chapters_get":{"x-fern-type-name":"GetChaptersRequest"},"Body_Get_Chapter_v1_studio_projects__project_id__chapters__chapter_id__get":{"x-fern-type-name":"GetChapterRequest"},"Body_Delete_Chapter_v1_studio_projects__project_id__chapters__chapter_id__delete":{"x-fern-type-name":"DeleteChapterRequest"},"Body_Get_Project_Chapters_Snapshots_v1_studio_projects__project_id__chapters__chapter_id__snapshots_get":{"x-fern-type-name":"GetChapterSnapshotsRequest"},"Body_Get_Projects_v1_studio_projects_get":{"x-fern-type-name":"GetProjectsRequest"},"Body_Get_Project_v1_studio_projects__project_id__get":{"x-fern-type-name":"GetProjectRequest"},"Body_Delete_Project_v1_studio_projects__project_id__delete":{"x-fern-type-name":"DeleteProjectRequest"},"Body_Create_transcript_v1_speech_to_text_post":{"x-fern-type-name":"CreateTranscriptRequest"},"Body_Remove_member_from_user_group_v1_workspace_groups__group_id__members_remove_post":{"x-fern-type-name":"RemoveMemberFromGroupRequest"},"Body_Update_audio_native_project_v1_audio_native__project_id__content_post":{"x-fern-type-name":"UpdateAudioNativeProjectRequest"},"Body_Update_Project_v1_studio_projects__project_id__post":{"x-fern-type-name":"UpdateProjectRequest"},"Body_Update_Chapter_v1_studio_projects__project_id__chapters__chapter_id__post":{"x-fern-type-name":"UpdateChapterRequest"},"CharacterUsageResponse":{"x-fern-type-name":"CharacterUsageResponse"},"GetPronunciationDictionariesResponseModel":{"x-fern-type-name":"GetPronunciationDictionariesResponse"},"GetPronunciationDictionaryResponseModel":{"x-fern-type-name":"GetPronunciationDictionaryResponse"},"DynamicVariableNestedValueType-Input":{"x-fern-type":"unknown"},"DynamicVariableNestedValueType-Output":{"x-fern-type":"unknown"},"PromptAgent-Input":{"x-fern-type-name":"PromptAgent"},"PromptAgent-Output":{"x-fern-type-name":"PromptAgent"},"PromptAgentApiModel-Input":{"x-fern-type-name":"PromptAgent"},"PromptAgentApiModel-Output":{"x-fern-type-name":"PromptAgent"}}},"tags":[{"name":"text-to-speech","description":"Convert text into lifelike speech using a voice of your choice."},{"name":"speech-to-speech","description":"Create speech by combining the style and content of an audio file you upload with a voice of your choice."},{"name":"speech-to-text","description":"Transcribe your audio files with detailed speaker annotations and precise timestamps using our cutting-edge model."},{"name":"forced-alignment","description":"Force align an audio file to a text transcript to get precise word-level and character level timing information. Response is a list of characters with their start and end times as milliseconds elapsed from the start of the recording."},{"name":"models","description":"Access the different models of the platform.","x-displayName":"Models"},{"name":"productions","description":"Access and manage ElevenProductions orders."},{"name":"samples","description":"Access to voices created either by you or ElevenLabs.","x-displayName":"Samples"},{"name":"samples","description":"Access to your samples. A sample is any audio file you attached to a voice. A voice can have one or more samples."},{"name":"speech-history","description":"Accesses your speech history. Your speech history is a list of all your created audio including its metadata using our text-to-speech and speech-to-speech models."},{"name":"studios","description":"Access, create and convert Studio Projects programmatically, only specifically whitelisted accounts can access the Studio API. If you need access please contact our sales team."},{"name":"user","description":"Access to workspace related endpoints.","x-displayName":"User"},{"name":"usage","description":"Design and generate custom voices from a text prompt.","x-displayName":"Usage"},{"name":"text-to-dialogue","description":"Generate multi-speaker dialogue from a script using different voices."},{"name":"sound-generation","description":"Generate sound effects and non-speech audio from a text prompt."},{"name":"audio-isolation","description":"Isolate speech from background noise in an audio file."},{"name":"audio-native","description":"Embed AI-narrated audio players into your website using Audio Native."},{"name":"music-generation","description":"Generate music from a text prompt."},{"name":"music-finetunes","description":"Create and manage music finetunes."},{"name":"video-to-music","description":"Generate music that matches the content and mood of a video."},{"name":"Speech Engine","description":"Low-latency, real-time speech generation endpoints."},{"name":"pvc-voices","description":"Create and manage Professional Voice Clones (PVCs)."},{"name":"dubbing","description":"Dub audio and video content into other languages while preserving the original speaker's voice."},{"name":"resource","description":"Manage dubbing resources, including segments, speakers, and language tracks."},{"name":"segment","description":"Manage individual segments within a dubbing resource."},{"name":"studio","description":"Access, create and convert Studio Projects programmatically. Only specifically whitelisted accounts can access the Studio API. If you need access please contact our sales team."},{"name":"Pronunciation Dictionary","description":"Manage pronunciation dictionaries that override how specific words are pronounced."},{"name":"Conversational AI","description":"Build and manage conversational AI agents (legacy tag — see also Agents Platform)."},{"name":"Agents Platform","description":"Build, configure and manage Conversational AI agents, knowledge bases, tools, and conversations."},{"name":"Agents Insights","description":"Query analytics and insights about agent conversations and performance."},{"name":"Agents Workspace Analytics","description":"Workspace-level analytics for Conversational AI usage."},{"name":"Single Use Token","description":"Mint short-lived, single-use tokens for client-side use of Conversational AI agents."},{"name":"api-key","description":"Manage API keys for your workspace."},{"name":"enterprise","description":"Endpoints available only to enterprise workspaces."},{"name":"access:all","description":"Endpoints accessible to all authenticated callers regardless of scope."}],"servers":[{"x-fern-server-name":"Production","url":"https://api.elevenlabs.io/","description":"Production (default). Routed to the closest region."},{"url":"https://api.us.elevenlabs.io/","x-fern-server-name":"Production US","description":"Production routed only to the US region."},{"url":"https://api.eu.residency.elevenlabs.io","x-fern-server-name":"Production EU","description":"Production route for customers with EU data residency."},{"url":"https://api.in.residency.elevenlabs.io","x-fern-server-name":"Production India","description":"Production route for customers with India data residency."},{"url":"https://api.sg.residency.elevenlabs.io","x-fern-server-name":"Production Singapore","description":"Production route for customers with Singapore data residency."}],"x-fern-global-headers":[{"header":"xi-api-key","name":"api-key","optional":true,"env":"ELEVENLABS_API_KEY"}],"x-fern-groups":{"samples":{"summary":"Samples"},"voices":{"summary":"Voices"},"studio":{"summary":"Studio"},"models":{"summary":"Models"}}}
\ No newline at end of file
+{"openapi":"3.1.0","info":{"title":"ElevenLabs API Documentation","description":"This is the documentation for the ElevenLabs API. You can use this API to use our service programmatically, this is done by using your API key. You can find your API key in the dashboard at https://elevenlabs.io/app/settings/api-keys.","version":"1.0"},"paths":{"/v1/history":{"get":{"operationId":"get_speech_history","summary":"Get generated items","description":"Returns a list of your generated audio (e.g. text to speech, speech to speech, Studio, dubbing). Music and SFX generations are not included and cannot currently be retrieved via the API.","parameters":[{"name":"page_size","in":"query","description":"How many history items to return at maximum. Can not exceed 1000, defaults to 100.","required":false,"schema":{"description":"How many history items to return at maximum. Can not exceed 1000, defaults to 100.","type":"integer","default":100,"title":"Page Size"}},{"name":"start_after_history_item_id","in":"query","description":"After which ID to start fetching, use this parameter to paginate across a large collection of history items. In case this parameter is not provided history items will be fetched starting from the most recently created one ordered descending by their creation date.","required":false,"schema":{"description":"After which ID to start fetching, use this parameter to paginate across a large collection of history items. In case this parameter is not provided history items will be fetched starting from the most recently created one ordered descending by their creation date.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start After History Item Id"}},{"name":"voice_id","in":"query","description":"ID of the voice to be filtered for. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":false,"schema":{"description":"Voice ID to be filtered for, you can use GET https://api.elevenlabs.io/v1/voices to receive a list of voices and their IDs.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"}},{"name":"model_id","in":"query","description":"Search term used for filtering history items. If provided, source becomes required.","required":false,"schema":{"description":"Model ID to filter history items by.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["eleven_turbo_v2","eleven_multilingual_v2"],"title":"Model Id"}},{"name":"date_before_unix","in":"query","description":"Unix timestamp to filter history items before this date (exclusive).","required":false,"schema":{"description":"Unix timestamp to filter history items before this date (exclusive).","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[1640995200],"title":"Date Before Unix"}},{"name":"date_after_unix","in":"query","description":"Unix timestamp to filter history items after this date (inclusive).","required":false,"schema":{"description":"Unix timestamp to filter history items after this date (inclusive).","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[1640995200],"title":"Date After Unix"}},{"name":"sort_direction","in":"query","description":"Sort direction for the results.","required":false,"schema":{"description":"Sort direction for the results.","default":"desc","anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"examples":["desc","asc"],"title":"Sort Direction"}},{"name":"search","in":"query","description":"search term used for filtering","required":false,"schema":{"description":"search term used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the land far far away"],"title":"Search"}},{"name":"source","in":"query","description":"Source of the generated history item","required":false,"schema":{"description":"Source of the generated history item","anyOf":[{"enum":["TTS","STS","Flows"],"type":"string"},{"type":"null"}],"examples":["TTS"],"title":"Source"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpeechHistoryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"list"}},"/v1/history/{history_item_id}":{"get":{"operationId":"get_speech_history_item_by_id","summary":"Get history item","description":"Retrieves a history item.","parameters":[{"name":"history_item_id","in":"path","description":"ID of the history item to be used. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items.","required":true,"schema":{"description":"History item ID to be used, you can use GET https://api.elevenlabs.io/v1/history to receive a list of history items and their IDs.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechHistoryItemResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_speech_history_item","summary":"Delete history item","description":"Delete a history item by its ID","parameters":[{"name":"history_item_id","in":"path","description":"ID of the history item to be used. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items.","required":true,"schema":{"description":"History item ID to be used, you can use GET https://api.elevenlabs.io/v1/history to receive a list of history items and their IDs.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHistoryItemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"delete"}},"/v1/history/{history_item_id}/audio":{"get":{"operationId":"get_audio_full_from_speech_history_item","summary":"Get audio from history item","description":"Returns the audio of an history item.","parameters":[{"name":"history_item_id","in":"path","description":"ID of the history item to be used. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items.","required":true,"schema":{"description":"History item ID to be used, you can use GET https://api.elevenlabs.io/v1/history to receive a list of history items and their IDs.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The audio file of the history item.","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"get_audio"}},"/v1/history/download":{"post":{"operationId":"download_speech_history_items","summary":"Download history items","description":"Download one or more history items. If one history item ID is provided, we will return a single audio file. If more than one history item IDs are provided, we will provide the history items packed into a .zip file.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Download_history_items_v1_history_download_post"}}}},"responses":{"200":{"description":"The requested audio file, or a zip file containing multiple audio files when multiple history items are requested.","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}}},"example":{"error":"invalid_output_format","message":"output_format must be wav or none"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-history"],"x-fern-sdk-group-name":"history","x-fern-sdk-method-name":"download","properties":[{"description":"IDs of the history items to be downloaded. You can use the [Get generated items](/docs/api-reference/history/list) endpoint to retrieve a list of history items."}]}},"/v1/sound-generation":{"post":{"operationId":"sound_generation","summary":"Create sound effect","description":"Turn text into sound effects for your videos, voice-overs or video games using the most advanced sound effects models in the world.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Sound_Generation_v1_sound_generation_post"}}}},"responses":{"200":{"description":"The generated sound effect as an MP3 file","headers":{"character-cost":{"description":"The number of characters used for billing","schema":{"type":"string"}}},"content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["sound-generation"],"x-fern-sdk-group-name":"text_to_sound_effects","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"text":"Spacious braam suitable for high-impact movie trailer moments"}}]}},"/v1/audio-isolation":{"post":{"operationId":"audio_isolation","summary":"Audio isolation","description":"Removes background noise from audio.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Audio_Isolation_v1_audio_isolation_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"convert"}},"/v1/audio-isolation/history":{"get":{"operationId":"get_audio_isolation_history","summary":"Get Audio Isolation History","description":"Returns a list of all your audio isolation generations.","parameters":[{"name":"page_size","in":"query","description":"How many history items to return at maximum. Defaults to 100.","required":false,"schema":{"description":"How many history items to return at maximum. Defaults to 100.","type":"integer","default":100,"maximum":1000,"minimum":1,"title":"Page Size"}},{"name":"page","in":"query","description":"Page number for search pagination (1-based). Only used when search is provided.","required":false,"schema":{"description":"Page number for search pagination (1-based). Only used when search is provided.","type":"integer","default":1,"minimum":1,"title":"Page"}},{"name":"search","in":"query","description":"Optional search term used for filtering audio isolation history (title/text).","required":false,"schema":{"description":"Optional search term used for filtering audio isolation history (title/text).","anyOf":[{"type":"string"},{"type":"null"}],"examples":["podcast","lecture"],"title":"Search"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAudioIsolationHistoryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"list"}},"/v1/audio-isolation/history/{history_item_id}":{"delete":{"operationId":"delete_audio_isolation_history_item","summary":"Delete Audio Isolation History Item","description":"Deletes a specific audio isolation history item and the associated media files.","parameters":[{"name":"history_item_id","in":"path","description":"Identifier of the audio isolation history item.","required":true,"schema":{"description":"Identifier of the audio isolation history item.","type":"string","title":"History Item Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"delete"}},"/v1/audio-isolation/stream":{"post":{"operationId":"audio_isolation_stream","summary":"Audio isolation stream","description":"Removes background noise from audio.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Audio_Isolation_Stream_v1_audio_isolation_stream_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-isolation"],"x-fern-sdk-group-name":"audio_isolation","x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/voices/{voice_id}/samples/{sample_id}":{"delete":{"operationId":"delete_sample","summary":"Delete voice sample","description":"Removes a sample by its ID.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"ID of the sample to be used. You can use the [Get voices](/docs/api-reference/voices/get) endpoint list all the available samples for a voice.","required":true,"schema":{"description":"Sample ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id} to list all the available samples for a voice.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSampleResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["samples"],"x-fern-sdk-group-name":"samples","x-fern-sdk-method-name":"delete"}},"/v1/voices/{voice_id}/samples/{sample_id}/audio":{"get":{"operationId":"get_audio_from_sample","summary":"Get audio from sample","description":"Returns the audio corresponding to a sample attached to a voice.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"ID of the sample to be used. You can use the [Get voices](/docs/api-reference/voices/get) endpoint list all the available samples for a voice.","required":true,"schema":{"description":"Sample ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id} to list all the available samples for a voice.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"audio/*":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["samples"],"x-fern-sdk-group-name":["voices","samples","audio"],"x-fern-sdk-method-name":"get"}},"/v1/text-to-speech/{voice_id}":{"post":{"operationId":"text_to_speech_full","summary":"Create speech","description":"Converts text into speech using a voice of your choice and returns audio.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_full","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"The generated audio file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"text":"The first move is what sets everything in motion.","model_id":"eleven_multilingual_v2"}}]}},"/v1/text-to-speech/{voice_id}/with-timestamps":{"post":{"operationId":"text_to_speech_full_with_timestamps","summary":"Create speech with timing","description":"Generate speech from text with precise character-level timing information for audio-text synchronization.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_full_with_timestamps","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioWithTimestampsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"convert_with_timestamps"}},"/v1/text-to-speech/{voice_id}/stream":{"post":{"operationId":"text_to_speech_stream","summary":"Stream speech","description":"Converts text into speech using a voice of your choice and returns audio as an audio stream.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_stream","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"stream","x-fern-streaming":true,"x-fern-request-name":"StreamTextToSpeechRequest","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"text":"The first move is what sets everything in motion.","model_id":"eleven_multilingual_v2"}}]}},"/v1/text-to-speech/{voice_id}/stream/with-timestamps":{"post":{"operationId":"text_to_speech_stream_with_timestamps","summary":"Stream speech with timing","description":"Converts text into speech using a voice of your choice and returns a stream of JSONs containing audio as a base64 encoded string together with information on when which character was spoken.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_speech_stream_with_timestamps","properties":{"voice_settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Stream of transcription chunks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamingAudioChunkWithTimestampsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-speech"],"x-fern-sdk-group-name":"text_to_speech","x-fern-sdk-method-name":"stream_with_timestamps","x-fern-streaming":true,"x-fern-request-name":"StreamTextToSpeechWithTimestampsRequest","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"text":"The first move is what sets everything in motion.","model_id":"eleven_multilingual_v2"}}]}},"/v1/text-to-dialogue":{"post":{"operationId":"text_to_dialogue","summary":"Create dialogue","description":"Converts a list of text and voice ID pairs into speech (dialogue) and returns audio.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","anyOf":[{"$ref":"#/components/schemas/NonStreamingOutputFormats"},{"$ref":"#/components/schemas/AllowedOutputFormats"}],"enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Text_to_dialogue__multi_voice__v1_text_to_dialogue_post","properties":{"settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"The generated audio file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"inputs":[{"text":"[giggling] Knock knock","voice_id":"JBFqnCBsd6RMkjVDRZzb"},{"text":"[curious] Who is there?","voice_id":"Aw4FAjKCGjjNkVhN1Xmq"}]}}]}},"/v1/text-to-dialogue/stream":{"post":{"operationId":"text_to_dialogue_stream","summary":"Stream dialogue","description":"Converts a list of text and voice ID pairs into speech (dialogue) and returns an audio stream.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Text_to_dialogue__multi_voice__streaming_v1_text_to_dialogue_stream_post","properties":{"settings":{"properties":{"use_speaker_boost":{"x-fern-ignore":true}}}}}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"stream","x-fern-streaming":true,"x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"inputs":[{"text":"[giggling] Knock knock","voice_id":"JBFqnCBsd6RMkjVDRZzb"},{"text":"[curious] Who is there?","voice_id":"Aw4FAjKCGjjNkVhN1Xmq"}]}}]}},"/v1/text-to-dialogue/stream/with-timestamps":{"post":{"operationId":"text_to_dialogue_stream_with_timestamps","summary":"Text To Dialogue Streaming With Timestamps","description":"Converts a list of text and voice ID pairs into speech (dialogue) and returns a stream of JSON blobs containing audio as a base64 encoded string and timestamps","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_dialogue_stream_with_timestamps"}}}},"responses":{"200":{"description":"Stream of transcription chunks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"stream_with_timestamps","x-fern-streaming":true}},"/v1/text-to-dialogue/with-timestamps":{"post":{"operationId":"text_to_dialogue_full_with_timestamps","summary":"Text To Dialogue With Timestamps","description":"Generate dialogue from text with precise character-level timing information for audio-text synchronization.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","anyOf":[{"$ref":"#/components/schemas/NonStreamingOutputFormats"},{"$ref":"#/components/schemas/AllowedOutputFormats"}],"enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_text_to_dialogue_full_with_timestamps"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioWithTimestampsAndVoiceSegmentsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-dialogue"],"x-fern-sdk-group-name":"text_to_dialogue","x-fern-sdk-method-name":"convert_with_timestamps"}},"/v1/speech-to-speech/{voice_id}":{"post":{"operationId":"speech_to_speech_full","summary":"Voice changer","description":"Transform audio from one voice to another. Maintain full control over emotion, timing and delivery.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["alaw_8000","mp3_22050_32","mp3_24000_48","mp3_44100_128","mp3_44100_192","mp3_44100_32","mp3_44100_64","mp3_44100_96","opus_48000_128","opus_48000_192","opus_48000_32","opus_48000_64","opus_48000_96","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","pcm_8000","ulaw_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000","wav_8000"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Speech_to_Speech_v1_speech_to_speech__voice_id__post"}}}},"responses":{"200":{"description":"The generated audio file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-speech"],"x-fern-sdk-group-name":"speech_to_speech","x-fern-sdk-method-name":"convert","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"model_id":"eleven_multilingual_sts_v2"}}]}},"/v1/speech-to-speech/{voice_id}/stream":{"post":{"operationId":"speech_to_speech_stream","summary":"Voice changer stream","description":"Stream audio from one voice to another. Maintain full control over emotion, timing and delivery.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. Use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean history features are unavailable for this request, including request stitching. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"optimize_streaming_latency","in":"query","description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","required":false,"schema":{"description":"You can turn on latency optimizations at some cost of quality. The best possible final latency varies by model. Possible values:\n0 - default mode (no latency optimizations)\n1 - normal latency optimizations (about 50% of possible latency improvement of option 3)\n2 - strong latency optimizations (about 75% of possible latency improvement of option 3)\n3 - max latency optimizations\n4 - max latency optimizations, but also with text normalizer turned off for even more latency savings (best latency, but can mispronounce eg numbers and dates).\n\nDefaults to None.\n","anyOf":[{"type":"integer"},{"type":"null"}],"deprecated":true,"title":"DEPRECATED. How much we should optimize streaming request latency (time to first audio byte)."},"deprecated":true},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","type":"string","default":"mp3_44100_128","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Speech_to_Speech_Streaming_v1_speech_to_speech__voice_id__stream_post"}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-speech"],"x-fern-sdk-group-name":"speech_to_speech","x-fern-sdk-method-name":"stream","x-fern-streaming":true,"x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"path-parameters":{"voice_id":"JBFqnCBsd6RMkjVDRZzb"},"query-parameters":{"output_format":"mp3_44100_128"},"request":{"model_id":"eleven_multilingual_sts_v2"}}]}},"/v1/text-to-voice/create-previews":{"post":{"operationId":"text_to_voice","summary":"Voice design","description":"Create a voice from a text prompt.","parameters":[{"name":"output_format","in":"query","description":"The output format of the generated audio.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_192","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"create_previews"}},"/v1/text-to-voice":{"post":{"operationId":"create_voice","summary":"Create A New Voice From Voice Preview","description":"Create a voice from previously generated voice preview. This endpoint should be called after you fetched a generated_voice_id using POST /v1/text-to-voice/design or POST /v1/text-to-voice/:voice_id/remix.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"create"}},"/v1/text-to-voice/design":{"post":{"operationId":"text_to_voice_design","summary":"Design A Voice.","description":"Design a voice via a prompt. This method returns a list of voice previews. Each preview has a generated_voice_id and a sample of the voice as base64 encoded mp3 audio. To create a voice use the generated_voice_id of the preferred preview with the /v1/text-to-voice endpoint.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_192","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceDesignRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"design"}},"/v1/text-to-voice/{voice_id}/remix":{"post":{"operationId":"text_to_voice_remix","summary":"Remix A Voice.","description":"Remix an existing voice via a prompt. This method returns a list of voice previews. Each preview has a generated_voice_id and a sample of the voice as base64 encoded mp3 audio. To create a voice use the generated_voice_id of the preferred preview with the /v1/text-to-voice endpoint.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_192","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceRemixRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePreviewsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":"text_to_voice","x-fern-sdk-method-name":"remix"}},"/v1/text-to-voice/{generated_voice_id}/stream":{"get":{"operationId":"text_to_voice_preview_stream","summary":"Text To Voice Preview Streaming","description":"Stream a voice preview that was created via the /v1/text-to-voice/design endpoint.","parameters":[{"name":"generated_voice_id","in":"path","description":"The generated_voice_id to stream.","required":true,"schema":{"description":"The generated_voice_id to stream.","type":"string","embed":true,"examples":["37HceQefKmEi3bGovXjL"],"title":"Generated Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["text-to-voice"],"x-fern-sdk-group-name":["text_to_voice","preview"],"x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/user":{"get":{"operationId":"get_user_info","summary":"Get user","description":"Gets information about the user","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":"user","x-fern-sdk-method-name":"get"}},"/v1/user/subscription":{"get":{"operationId":"get_user_subscription_info","summary":"Get user subscription","description":"Gets extended information about the users subscription","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtendedSubscriptionResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["user","subscription"],"x-fern-sdk-method-name":"get"}},"/v1/voices/settings/default":{"get":{"operationId":"get_voice_settings_default","summary":"Get default voice settings","description":"Gets the default settings for voices. \"similarity_boost\" corresponds to\"Clarity + Similarity Enhancement\" in the web app and \"stability\" corresponds to \"Stability\" slider in the web app.","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSettingsResponseModel"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":["voices","settings"],"x-fern-sdk-method-name":"get_default"}},"/v1/voices/{voice_id}/settings":{"get":{"operationId":"get_voice_settings","summary":"Get voice settings","description":"Returns the settings for a specific voice. \"similarity_boost\" corresponds to\"Clarity + Similarity Enhancement\" in the web app and \"stability\" corresponds to \"Stability\" slider in the web app.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":["voices","settings"],"x-fern-sdk-method-name":"get"}},"/v1/voices/{voice_id}/settings/edit":{"post":{"operationId":"edit_voice_settings","summary":"Edit voice settings","description":"Edit your settings for a specific voice. \"similarity_boost\" corresponds to \"Clarity + Similarity Enhancement\" in the web app and \"stability\" corresponds to \"Stability\" slider in the web app.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"The settings for a specific voice.","$ref":"#/components/schemas/VoiceSettingsResponseModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditVoiceSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":["voices","settings"],"x-fern-sdk-method-name":"update"}},"/v1/voices":{"get":{"operationId":"get_voices","summary":"List voices","description":"Returns a list of all available voices for a user. Stops working once the user's workspace exceeds 500 voices.","parameters":[{"name":"show_legacy","in":"query","description":"If set to true, legacy premade voices will be included in responses from /v1/voices","required":false,"schema":{"description":"If set to true, legacy premade voices will be included in responses from /v1/voices","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Show Legacy"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVoicesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"get_all","deprecated":true}},"/v1/voices/{voice_id}":{"get":{"operationId":"get_voice_by_id","summary":"Get voice","description":"Returns metadata about a specific voice.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"with_settings","in":"query","description":"This parameter is now deprecated. It is ignored and will be removed in a future version.","required":false,"schema":{"description":"This parameter is now deprecated. It is ignored and will be removed in a future version.","type":"boolean","default":true,"deprecated":true,"title":"With Settings"},"deprecated":true},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_voice","summary":"Delete voice","description":"Deletes a voice by its ID.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"delete"}},"/v1/voices/{voice_id}/edit":{"post":{"operationId":"edit_voice","summary":"Edit voice","description":"Edit a voice created by you.","parameters":[{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Edit_voice_v1_voices__voice_id__edit_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"update"}},"/v2/voices":{"get":{"operationId":"get_user_voices_v2","summary":"List voices","description":"Gets a list of all available voices for a user with search, filtering and pagination.","parameters":[{"name":"next_page_token","in":"query","description":"The next page token to use for pagination. Returned from the previous request. Use this in combination with the has_more flag for reliable pagination.","required":false,"schema":{"description":"The next page token to use for pagination. Returned from the previous request. Use this in combination with the has_more flag for reliable pagination.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["0"],"title":"Next Page Token"}},{"name":"page_size","in":"query","description":"How many voices to return at maximum. Can not exceed 100, defaults to 10. Page 0 may include more voices due to default voices being included.","required":false,"schema":{"description":"How many voices to return at maximum. Can not exceed 100, defaults to 10. Page 0 may include more voices due to default voices being included.","type":"integer","default":10,"title":"Page Size"}},{"name":"search","in":"query","description":"Search term to filter voices by. Searches in name, description, labels, category.","required":false,"schema":{"description":"Search term to filter voices by. Searches in name, description, labels, category.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort","in":"query","description":"Which field to sort by, one of 'created_at_unix' or 'name'. 'created_at_unix' may not be available for older voices.","required":false,"schema":{"description":"Which field to sort by, one of 'created_at_unix' or 'name'. 'created_at_unix' may not be available for older voices.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["created_at_unix"],"title":"Sort"}},{"name":"sort_direction","in":"query","description":"Which direction to sort the voices in. 'asc' or 'desc'.","required":false,"schema":{"description":"Which direction to sort the voices in. 'asc' or 'desc'.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["desc"],"title":"Sort Direction"}},{"name":"voice_type","in":"query","description":"Type of the voice to filter by. One of 'personal', 'community', 'default', 'workspace', 'non-default', 'non-community', 'saved'. 'non-default' is equal to all but 'default'. 'non-community' is equal to 'personal' and 'workspace' combined (excludes library copies). 'saved' is equal to non-default, but includes default voices if they have been added to a collection.","required":false,"schema":{"description":"Type of the voice to filter by. One of 'personal', 'community', 'default', 'workspace', 'non-default', 'non-community', 'saved'. 'non-default' is equal to all but 'default'. 'non-community' is equal to 'personal' and 'workspace' combined (excludes library copies). 'saved' is equal to non-default, but includes default voices if they have been added to a collection.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Type"}},{"name":"category","in":"query","description":"Category of the voice to filter by. One of 'premade', 'cloned', 'generated', 'professional'","required":false,"schema":{"description":"Category of the voice to filter by. One of 'premade', 'cloned', 'generated', 'professional'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"fine_tuning_state","in":"query","description":"State of the voice's fine tuning to filter by. Applicable only to professional voices clones. One of 'draft', 'not_verified', 'not_started', 'queued', 'fine_tuning', 'fine_tuned', 'failed', 'delayed'","required":false,"schema":{"description":"State of the voice's fine tuning to filter by. Applicable only to professional voices clones. One of 'draft', 'not_verified', 'not_started', 'queued', 'fine_tuning', 'fine_tuned', 'failed', 'delayed'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Fine Tuning State"}},{"name":"collection_id","in":"query","description":"Collection ID to filter voices by.","required":false,"schema":{"description":"Collection ID to filter voices by.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Id"}},{"name":"include_total_count","in":"query","description":"Whether to include the total count of voices found in the response. NOTE: The total_count value is a live snapshot and may change between requests as users create, modify, or delete voices. For pagination, rely on the has_more flag instead. Only enable this when you actually need the total count (e.g., for display purposes), as it incurs a performance cost.","required":false,"schema":{"description":"Whether to include the total count of voices found in the response. NOTE: The total_count value is a live snapshot and may change between requests as users create, modify, or delete voices. For pagination, rely on the has_more flag instead. Only enable this when you actually need the total count (e.g., for display purposes), as it incurs a performance cost.","type":"boolean","default":true,"examples":[true],"title":"Include Total Count"}},{"name":"voice_ids","in":"query","description":"Voice IDs to lookup by. Maximum 100 voice IDs.","required":false,"schema":{"description":"Voice IDs to lookup by. Maximum 100 voice IDs.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Voice Ids"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVoicesV2ResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices","voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"search"}},"/v1/voices/add":{"post":{"operationId":"add_voice","summary":"Create voice clone","description":"Create a voice clone and add it to your Voices","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_voice_v1_voices_add_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceIVCResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":["voices","ivc"],"x-fern-sdk-method-name":"create"}},"/v1/voices/add/{public_user_id}/{voice_id}":{"post":{"operationId":"add_sharing_voice","summary":"Add shared voice","description":"Add a shared voice to your collection of Voices","parameters":[{"name":"public_user_id","in":"path","description":"Public user ID used to publicly identify ElevenLabs users.","required":true,"schema":{"description":"Public user ID used to publicly identify ElevenLabs users.","type":"string","examples":["63e06b7e7cafdc46be4d2e0b3f045940231ae058d508589653d74d1265a574ca"],"title":"Public User Id"}},{"name":"voice_id","in":"path","description":"ID of the voice to be used. You can use the [Get voices](/docs/api-reference/voices/search) endpoint list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_shared_voice_v1_voices_add__public_user_id___voice_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"share"}},"/v1/studio/podcasts":{"post":{"operationId":"create_podcast","summary":"Create Podcast","description":"Create and auto-convert a podcast project. Currently, the LLM cost is covered by us but you will still be charged for the audio generation. In the future, you will be charged for both the LLM and audio generation costs.","parameters":[{"name":"safety-identifier","in":"header","description":"Used for moderation. Your workspace must be allowlisted to use this feature.","required":false,"schema":{"description":"Used for moderation. Your workspace must be allowlisted to use this feature.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Safety-Identifier"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_podcast_v1_studio_podcasts_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":"studio","x-fern-sdk-method-name":"create_podcast"}},"/v1/studio/projects/{project_id}/pronunciation-dictionaries":{"post":{"operationId":"update_pronunciation_dictionaries","summary":"Create Pronunciation Dictionaries","description":"Create a set of pronunciation dictionaries acting on a project. This will automatically mark text within this project as requiring reconverting where the new dictionary would apply or the old one no longer does.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_Pronunciation_Dictionaries_v1_studio_projects__project_id__pronunciation_dictionaries_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePronunciationDictionaryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","pronunciation_dictionaries"],"x-fern-sdk-method-name":"create"}},"/v1/studio/projects":{"get":{"operationId":"get_projects","summary":"List Studio Projects","description":"Returns a list of your Studio projects with metadata.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProjectsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"add_project","summary":"Create Studio Project","description":"Creates a new Studio project, it can be either initialized as blank, from a document or from a URL.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_Studio_project_v1_studio_projects_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"create"}},"/v1/studio/projects/{project_id}":{"post":{"operationId":"edit_project","summary":"Update Studio Project","description":"Updates the specified Studio project by setting the values of the parameters passed.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_Studio_project_v1_studio_projects__project_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"update"},"get":{"operationId":"get_project_by_id","summary":"Get Studio Project","description":"Returns information about a specific Studio project. This endpoint returns more detailed information about a project than `GET /v1/studio`.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"share_id","in":"query","description":"The share ID of the project","required":false,"schema":{"description":"The share ID of the project","anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectExtendedResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_project","summary":"Delete Studio Project","description":"Deletes a Studio project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"delete"}},"/v1/studio/projects/{project_id}/content":{"post":{"operationId":"edit_project_content","summary":"Update Studio Project Content","description":"Updates Studio project content.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Update_Studio_project_content_v1_studio_projects__project_id__content_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","content"],"x-fern-sdk-method-name":"update"}},"/v1/studio/projects/{project_id}/convert":{"post":{"operationId":"convert_project_endpoint","summary":"Convert Studio Project","description":"Starts conversion of a Studio project and all of its chapters.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"convert"}},"/v1/studio/projects/{project_id}/snapshots":{"get":{"operationId":"get_project_snapshots","summary":"List Studio Project Snapshots","description":"Retrieves a list of snapshots for a Studio project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSnapshotsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"list"}},"/v1/studio/projects/{project_id}/snapshots/{project_snapshot_id}":{"get":{"operationId":"get_project_snapshot_endpoint","summary":"Get Project Snapshot","description":"Returns the project snapshot.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"project_snapshot_id","in":"path","description":"The ID of the Studio project snapshot.","required":true,"schema":{"description":"The ID of the Studio project snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSnapshotExtendedResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"get"}},"/v1/studio/projects/{project_id}/snapshots/{project_snapshot_id}/stream":{"post":{"operationId":"stream_project_snapshot_audio_endpoint","summary":"Stream Studio Project Audio","description":"Stream the audio from a Studio project snapshot.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"project_snapshot_id","in":"path","description":"The ID of the Studio project snapshot.","required":true,"schema":{"description":"The ID of the Studio project snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_Studio_project_audio_v1_studio_projects__project_id__snapshots__project_snapshot_id__stream_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/studio/projects/{project_id}/snapshots/{project_snapshot_id}/archive":{"post":{"operationId":"stream_project_snapshot_archive_endpoint","summary":"Stream Archive With Studio Project Audio","description":"Returns a compressed archive of the Studio project's audio.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"project_snapshot_id","in":"path","description":"The ID of the Studio project snapshot.","required":true,"schema":{"description":"The ID of the Studio project snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Streaming archive data","content":{"application/x-zip":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","snapshots"],"x-fern-sdk-method-name":"stream_archive"}},"/v1/studio/projects/{project_id}/chapters":{"get":{"operationId":"get_chapters","summary":"List Chapters","description":"Returns a list of a Studio project's chapters.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetChaptersResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"add_chapter","summary":"Create Chapter","description":"Creates a new chapter either as blank or from a URL.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_chapter_v1_studio_projects__project_id__chapters_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"create"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}":{"get":{"operationId":"get_chapter_by_id_endpoint","summary":"Get Chapter","description":"Returns information about a specific chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterWithContentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"get"},"post":{"operationId":"edit_chapter","summary":"Update Chapter","description":"Updates a chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_chapter_v1_studio_projects__project_id__chapters__chapter_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_chapter_endpoint","summary":"Delete Chapter","description":"Deletes a chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"delete"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/convert":{"post":{"operationId":"convert_chapter_endpoint","summary":"Convert Chapter","description":"Starts conversion of a specific chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertChapterResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters"],"x-fern-sdk-method-name":"convert"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots":{"get":{"operationId":"get_chapter_snapshots","summary":"List Chapter Snapshots","description":"Gets information about all the snapshots of a chapter. Each snapshot can be downloaded as audio. Whenever a chapter is converted a snapshot will automatically be created.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterSnapshotsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters","snapshots"],"x-fern-sdk-method-name":"list"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots/{chapter_snapshot_id}":{"get":{"operationId":"get_chapter_snapshot_endpoint","summary":"Get Chapter Snapshot","description":"Returns the chapter snapshot.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"chapter_snapshot_id","in":"path","description":"The ID of the chapter snapshot.","required":true,"schema":{"description":"The ID of the chapter snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterSnapshotExtendedResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters","snapshots"],"x-fern-sdk-method-name":"get"}},"/v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots/{chapter_snapshot_id}/stream":{"post":{"operationId":"stream_chapter_snapshot_audio","summary":"Stream Chapter Audio","description":"Stream the audio from a chapter snapshot. Use `GET /v1/studio/projects/{project_id}/chapters/{chapter_id}/snapshots` to return the snapshots of a chapter.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"chapter_id","in":"path","description":"The ID of the chapter to be used. You can use the [List project chapters](/docs/api-reference/studio/get-chapters) endpoint to list all the available chapters.","required":true,"schema":{"description":"The ID of the chapter.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Id"}},{"name":"chapter_snapshot_id","in":"path","description":"The ID of the chapter snapshot to be used. You can use the [List project chapter snapshots](/docs/api-reference/studio/get-snapshots) endpoint to list all the available snapshots.","required":true,"schema":{"description":"The ID of the chapter snapshot.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Chapter Snapshot Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_chapter_audio_v1_studio_projects__project_id__chapters__chapter_id__snapshots__chapter_snapshot_id__stream_post"}}}},"responses":{"200":{"description":"Streaming audio data","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects","chapters","snapshots"],"x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/studio/projects/{project_id}/muted-tracks":{"get":{"operationId":"get_project_muted_tracks_endpoint","summary":"Get Project Muted Tracks","description":"Returns a list of chapter IDs that have muted tracks in a project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectMutedTracksResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["studio"],"x-fern-sdk-group-name":["studio","projects"],"x-fern-sdk-method-name":"get_muted_tracks"}},"/v1/dubbing/project":{"post":{"operationId":"dubbing_project_create","summary":"Create Dubbing Project","description":"Create a dubbing project from an uploaded file or a source URL.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_Dubbing_Project_v1_dubbing_project_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"request":{"source_url":"https://example.com/promo.mp4","source_language":"en","reference":"Q3 marketing video"},"response":{"body":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","status":"queued","reference":"Q3 marketing video","source_language":"en","model_id":"dubbing_v2","language_ids":[],"revision":0,"created_at":"2026-07-03T10:15:30Z","updated_at":"2026-07-03T10:15:30Z"}}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"dubbing_project_list","summary":"List Dubbing Projects","description":"List the workspace's dubbing projects (cursor-paginated).","parameters":[{"name":"cursor","in":"query","description":"Pagination cursor from a previous response's next_cursor.","required":false,"schema":{"description":"Pagination cursor from a previous response's next_cursor.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"Number of projects per page (max 100).","required":false,"schema":{"description":"Number of projects per page (max 100).","type":"integer","default":20,"title":"Page Size"}},{"name":"status","in":"query","description":"Filter to projects in this status (preparing, ready, failed).","required":false,"schema":{"description":"Filter to projects in this status (preparing, ready, failed).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"sort_direction","in":"query","description":"Sort by creation time (default 'DESCENDING').","required":false,"schema":{"description":"Sort by creation time (default 'DESCENDING').","type":"string","default":"DESCENDING","enum":["ASCENDING","DESCENDING"],"title":"Sort Direction"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingProjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"query-parameters":{"page_size":20},"response":{"body":{"projects":[{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","status":"ready","reference":"Q3 marketing video","source_language":"en","model_id":"dubbing_v2","media":{"filename":"promo.mp4","duration_s":42.5,"has_video":true,"mime_type":"video/mp4"},"language_ids":["lang_1001kwkyxp0je6ktn4knsfrasx5s"],"revision":3,"created_at":"2026-07-03T10:15:30Z","updated_at":"2026-07-03T10:17:12Z"}]}}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"list"}},"/v1/dubbing/project/{project_id}":{"get":{"operationId":"dubbing_project_get","summary":"Get Dubbing Project","description":"Full project detail, including its language target ids.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project to fetch.","required":true,"schema":{"description":"Identifier of the dubbing project to fetch.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"response":{"body":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","status":"ready","reference":"Q3 marketing video","source_language":"en","model_id":"dubbing_v2","media":{"filename":"promo.mp4","duration_s":42.5,"has_video":true,"mime_type":"video/mp4"},"language_ids":["lang_1001kwkyxp0je6ktn4knsfrasx5s"],"revision":3,"created_at":"2026-07-03T10:15:30Z","updated_at":"2026-07-03T10:17:12Z"}}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"dubbing_project_delete","summary":"Delete Dubbing Project","description":"Delete a project and its language targets.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project to delete.","required":true,"schema":{"description":"Identifier of the dubbing project to delete.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"}}],"x-fern-sdk-group-name":["dubbing","project"],"x-fern-sdk-method-name":"delete"}},"/v1/dubbing/project/{project_id}/language":{"post":{"operationId":"dubbing_language_create","summary":"Create Dubbing Language Target","description":"Queue a language target for a project (starts once the project is ready).","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_Dubbing_Language_Target_v1_dubbing_project__project_id__language_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"request":{"target_language":"es","model_id":"dubbing_v2"},"response":{"body":{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"queued","model_id":"dubbing_v2","revision":0,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:16:00Z"}}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"dubbing_language_list","summary":"List Dubbing Language Targets","description":"List a project's language targets (cursor-paginated).","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"cursor","in":"query","description":"Pagination cursor from a previous response's next_cursor.","required":false,"schema":{"description":"Pagination cursor from a previous response's next_cursor.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"Number of language targets per page (max 100).","required":false,"schema":{"description":"Number of language targets per page (max 100).","type":"integer","default":20,"title":"Page Size"}},{"name":"status","in":"query","description":"Filter to targets in this status (queued, processing, completed, stale, failed).","required":false,"schema":{"description":"Filter to targets in this status (queued, processing, completed, stale, failed).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"query-parameters":{"page_size":20},"response":{"body":{"languages":[{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"completed","model_id":"dubbing_v2","outputs":{"lossless_audio":"https://storage.googleapis.com/eleven-dubbing/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/lang_1001kwkyxp0je6ktn4knsfrasx5s/output.wav?X-Goog-Signature=..."},"revision":3,"output_revision":3,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:20:45Z"}]}}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"list"}},"/v1/dubbing/project/{project_id}/language/{language_id}":{"get":{"operationId":"dubbing_language_get","summary":"Get Dubbing Language Target","description":"Full language-target detail.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target to fetch.","required":true,"schema":{"description":"Identifier of the language target to fetch.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"},"response":{"body":{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"completed","model_id":"dubbing_v2","outputs":{"lossless_audio":"https://storage.googleapis.com/eleven-dubbing/proj_1601kwkyxp0hfzvtmyxwqxx6mcy3/lang_1001kwkyxp0je6ktn4knsfrasx5s/output.wav?X-Goog-Signature=..."},"revision":3,"output_revision":3,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:20:45Z"}}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"dubbing_language_delete","summary":"Delete Dubbing Language Target","description":"Delete a language target.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the parent dubbing project.","required":true,"schema":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target to delete.","required":true,"schema":{"description":"Identifier of the language target to delete.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"}}],"x-fern-sdk-group-name":["dubbing","project","language"],"x-fern-sdk-method-name":"delete"}},"/v1/dubbing/project/{project_id}/transcript":{"get":{"operationId":"dubbing_transcript_get","summary":"Get Dubbing Transcript","description":"The project's source transcript, as editable segments.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSourceTranscriptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"response":{"body":{"language":"en","segments":[{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","text":"Welcome to our product demo.","speaker_id":"default_speaker","start_s":0,"end_s":2.5}],"revision":3}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/project/{project_id}/transcript/segment/{segment_id}":{"patch":{"operationId":"dubbing_transcript_segment_update","summary":"Update Dubbing Transcript Segment","description":"Edit a source segment's text, speaker, or timing.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"segment_id","in":"path","description":"Identifier of the segment to edit.","required":true,"schema":{"description":"Identifier of the segment to edit.","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSegmentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSourceSegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","segment_id":"0199a3f0-1c2d-7abc-8def-0123456789ab"},"request":{"text":"Welcome to our latest product demo."},"response":{"body":{"segment":{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","text":"Welcome to our latest product demo.","speaker_id":"default_speaker","start_s":0,"end_s":2.5},"revision":4}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"update_segment"},"delete":{"operationId":"dubbing_transcript_segment_delete","summary":"Delete Dubbing Transcript Segment","description":"Remove a source segment from the transcript.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"segment_id","in":"path","description":"Identifier of the segment to remove.","required":true,"schema":{"description":"Identifier of the segment to remove.","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTranscriptRevisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","segment_id":"0199a3f0-1c2d-7abc-8def-0123456789ab"},"response":{"body":{"revision":6}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"delete_segment"}},"/v1/dubbing/project/{project_id}/transcript/segment":{"post":{"operationId":"dubbing_transcript_segment_add","summary":"Add Dubbing Transcript Segment","description":"Add a new source segment to the transcript.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSegmentCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingSourceSegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"},"request":{"text":"Thanks for watching.","speaker_id":"default_speaker","start_s":42,"end_s":44},"response":{"body":{"segment":{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","text":"Thanks for watching.","speaker_id":"default_speaker","start_s":42,"end_s":44},"revision":5}}}],"x-fern-sdk-group-name":["dubbing","project","transcript"],"x-fern-sdk-method-name":"create_segment"}},"/v1/dubbing/project/{project_id}/language/{language_id}/transcript":{"get":{"operationId":"dubbing_target_transcript_get","summary":"Get Dubbing Target Transcript","description":"A language target's transcript: source segments with their translations.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target.","required":true,"schema":{"description":"Identifier of the language target.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTargetTranscriptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"},"response":{"body":{"source_language":"en","target_language":"es","segments":[{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","speaker_id":"default_speaker","start_s":0,"end_s":2.5,"source_text":"Welcome to our product demo.","translation":"Bienvenido a la demostración de nuestro producto."}],"revision":3}}}],"x-fern-sdk-group-name":["dubbing","project","language","transcript"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/project/{project_id}/language/{language_id}/transcript/segment/{segment_id}":{"patch":{"operationId":"dubbing_target_transcript_segment_update","summary":"Update Dubbing Target Transcript Segment","description":"Edit a segment's translation for a language target.","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target.","required":true,"schema":{"description":"Identifier of the language target.","type":"string","title":"Language Id"}},{"name":"segment_id","in":"path","description":"Identifier of the segment to edit.","required":true,"schema":{"description":"Identifier of the segment to edit.","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTargetSegmentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTargetSegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","segment_id":"0199a3f0-1c2d-7abc-8def-0123456789ab"},"request":{"translation":"Bienvenido a nuestra última demostración de producto."},"response":{"body":{"segment":{"id":"0199a3f0-1c2d-7abc-8def-0123456789ab","speaker_id":"default_speaker","start_s":0,"end_s":2.5,"source_text":"Welcome to our product demo.","translation":"Bienvenido a nuestra última demostración de producto."},"revision":4}}}],"x-fern-sdk-group-name":["dubbing","project","language","transcript"],"x-fern-sdk-method-name":"update_segment"}},"/v1/dubbing/project/{project_id}/language/{language_id}/transcript/regenerate":{"post":{"operationId":"dubbing_target_transcript_regenerate","summary":"Regenerate Dubbing Target","description":"Re-dub a target from its edited transcript (charged like a generation).","parameters":[{"name":"project_id","in":"path","description":"Identifier of the dubbing project.","required":true,"schema":{"description":"Identifier of the dubbing project.","type":"string","title":"Project Id"}},{"name":"language_id","in":"path","description":"Identifier of the language target.","required":true,"schema":{"description":"Identifier of the language target.","type":"string","title":"Language Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Dubbing"],"x-fern-examples":[{"path-parameters":{"project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s"},"response":{"body":{"language_id":"lang_1001kwkyxp0je6ktn4knsfrasx5s","project_id":"proj_1601kwkyxp0hfzvtmyxwqxx6mcy3","target_language":"es","status":"queued","model_id":"dubbing_v2","revision":4,"output_revision":3,"created_at":"2026-07-03T10:16:00Z","updated_at":"2026-07-03T10:25:10Z"}}}],"x-fern-sdk-group-name":["dubbing","project","language","transcript"],"x-fern-sdk-method-name":"regenerate"}},"/v1/dubbing/resource/{dubbing_id}":{"get":{"operationId":"get_dubbing_resource","summary":"Get dubbing resource","description":"Given a dubbing ID generated from the '/v1/dubbing' endpoint with studio enabled, returns the dubbing resource.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingResource"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/resource/{dubbing_id}/language":{"post":{"operationId":"add_language","summary":"Add language to dubbing resource","description":"Adds the given ElevenLab Turbo V2/V2.5 language code to the resource. Does not automatically generate transcripts/translations/audio.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_a_language_to_the_resource_v1_dubbing_resource__dubbing_id__language_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageAddedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","language"],"x-fern-sdk-method-name":"add"}},"/v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}/segment":{"post":{"operationId":"create_clip","summary":"Add speaker segment to dubbing resource","description":"Creates a new segment in dubbing resource with a start and end time for the speaker in every available language. Does not automatically generate transcripts/translations/audio.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"speaker_id","in":"path","description":"ID of the speaker.","required":true,"schema":{"description":"ID of the speaker.","type":"string","title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"The text, and start and end times of a segment.","$ref":"#/components/schemas/SegmentCreatePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker","segment"],"x-fern-sdk-method-name":"create"}},"/v1/dubbing/resource/{dubbing_id}/segment/{segment_id}/{language}":{"patch":{"operationId":"update_segment_language","summary":"Modify a segment","description":"Modifies a single segment with new text and/or start/end times. Will update the values for only a specific language of a segment. Does not automatically regenerate the dub.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"segment_id","in":"path","description":"ID of the segment","required":true,"schema":{"description":"ID of the segment","type":"string","title":"Segment Id"}},{"name":"language","in":"path","description":"ID of the language.","required":true,"schema":{"description":"ID of the language.","type":"string","title":"Language"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"The text, and start and end times of a segment.","$ref":"#/components/schemas/SegmentUpdatePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","segment"],"x-fern-sdk-method-name":"update"}},"/v1/dubbing/resource/{dubbing_id}/migrate-segments":{"post":{"operationId":"migrate_segments","summary":"Move Segments Between Speakers","description":"Change the attribution of one or more segments to a different speaker.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Move_segments_between_speakers_v1_dubbing_resource__dubbing_id__migrate_segments_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentMigrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"migrate_segments"}},"/v1/dubbing/resource/{dubbing_id}/segment/{segment_id}":{"delete":{"operationId":"delete_segment","summary":"Delete a segment","description":"Deletes a single segment from the dubbing.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"segment_id","in":"path","description":"ID of the segment","required":true,"schema":{"description":"ID of the segment","type":"string","title":"Segment Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","segment"],"x-fern-sdk-method-name":"delete"}},"/v1/dubbing/resource/{dubbing_id}/transcribe":{"post":{"operationId":"transcribe","summary":"Transcribe segments","description":"Regenerate the transcriptions for the specified segments. Does not automatically regenerate translations or dubs.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Transcribes_segments_v1_dubbing_resource__dubbing_id__transcribe_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentTranscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"transcribe"}},"/v1/dubbing/resource/{dubbing_id}/translate":{"post":{"operationId":"translate","summary":"Translate segments","description":"Regenerate the translations for either the entire resource or the specified segments/languages. Will automatically transcribe missing transcriptions. Will not automatically regenerate the dubs.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Translates_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__translate_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentTranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"translate"}},"/v1/dubbing/resource/{dubbing_id}/dub":{"post":{"operationId":"dub","summary":"Dub segments","description":"Regenerate the dubs for either the entire resource or the specified segments/languages. Will automatically transcribe and translate any missing transcriptions and translations.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Dubs_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__dub_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentDubResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"dub"}},"/v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}":{"patch":{"operationId":"update_speaker","summary":"Update Metadata For A Speaker","description":"Amend the metadata associated with a speaker, such as their voice. Both voice cloning and using voices from the ElevenLabs library are supported.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"speaker_id","in":"path","description":"ID of the speaker.","required":true,"schema":{"description":"ID of the speaker.","type":"string","title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_metadata_for_a_speaker_v1_dubbing_resource__dubbing_id__speaker__speaker_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerUpdatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker"],"x-fern-sdk-method-name":"update"}},"/v1/dubbing/resource/{dubbing_id}/speaker":{"post":{"operationId":"create_speaker","summary":"Create A New Speaker","description":"Creates a new speaker in a dubbing resource. The speaker is added to every available language and can optionally be associated with an ElevenLabs voice and voice settings.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_a_new_speaker_v1_dubbing_resource__dubbing_id__speaker_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker"],"x-fern-sdk-method-name":"create"}},"/v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}/similar-voices":{"get":{"operationId":"get_similar_voices_for_speaker","summary":"Search The Elevenlabs Library For Voices Similar To A Speaker.","description":"Fetch the top 10 similar voices to a speaker, including the voice IDs, names, descriptions, and, where possible, a sample audio recording.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"speaker_id","in":"path","description":"ID of the speaker.","required":true,"schema":{"description":"ID of the speaker.","type":"string","title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimilarVoicesForSpeakerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource","speaker"],"x-fern-sdk-method-name":"find_similar_voices"}},"/v1/dubbing/resource/{dubbing_id}/render/{language}":{"post":{"operationId":"render","summary":"Render Audio Or Video For The Given Language","description":"Regenerate the output media for a language using the latest Studio state. Please ensure all segments have been dubbed before rendering, otherwise they will be omitted. Renders are generated asynchronously, and to check the status of all renders please use the 'Get Dubbing Resource' endpoint.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language","in":"path","description":"The target language code to render, eg. 'es'. To render the source track use 'original'.","required":true,"schema":{"description":"The target language code to render, eg. 'es'. To render the source track use 'original'.","type":"string","title":"Language"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Render_audio_or_video_for_the_given_language_v1_dubbing_resource__dubbing_id__render__language__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingRenderResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["dubbing","dubbing","resource","segment","enterprise"],"x-fern-sdk-group-name":["dubbing","resource"],"x-fern-sdk-method-name":"render"}},"/v1/dubbing":{"get":{"operationId":"list_dubs","summary":"List Dubs","description":"List the dubs you have access to.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many dubs to return at maximum. Can not exceed 200, defaults to 100.","required":false,"schema":{"description":"How many dubs to return at maximum. Can not exceed 200, defaults to 100.","type":"integer","default":100,"maximum":200,"minimum":1,"title":"Page Size"}},{"name":"dubbing_status","in":"query","description":"What state the dub is currently in.","required":false,"schema":{"description":"What state the dub is currently in.","type":"string","embed":true,"enum":["dubbing","dubbed","failed"],"title":"Dubbing Status"}},{"name":"dubbing_statuses","in":"query","description":"Filter by dubbing status.","required":false,"schema":{"description":"Filter by dubbing status.","anyOf":[{"type":"array","items":{"enum":["queued","preparing","dubbing","dubbed","failed"],"type":"string"}},{"type":"null"}],"title":"Dubbing Statuses"}},{"name":"dubbing_models","in":"query","description":"Filter by dubbing model generation.","required":false,"schema":{"description":"Filter by dubbing model generation.","anyOf":[{"type":"array","items":{"enum":["dubbing_v1","dubbing_v2"],"type":"string"}},{"type":"null"}],"title":"Dubbing Models"}},{"name":"target_language_codes","in":"query","description":"Filter by target language code.","required":false,"schema":{"description":"Filter by target language code.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Target Language Codes"}},{"name":"creation_sources","in":"query","description":"Filter by dubbing creation source.","required":false,"schema":{"description":"Filter by dubbing creation source.","anyOf":[{"type":"array","items":{"enum":["flow_node","dubbing_ui","dubbing_api"],"type":"string"}},{"type":"null"}],"title":"Creation Sources"}},{"name":"filter_by_creator","in":"query","description":"Filters who created the resources being listed, whether it was the user running the request or someone else that shared the resource with them.","required":false,"schema":{"description":"Filters who created the resources being listed, whether it was the user running the request or someone else that shared the resource with them.","type":"string","default":"all","enum":["personal","others","all"],"examples":["all"],"title":"Filter By Creator"}},{"name":"order_by","in":"query","description":"The field to use for ordering results from this query.","required":false,"schema":{"description":"The field to use for ordering results from this query.","type":"string","default":"created_at","enum":["created_at","name"],"title":"Order By"}},{"name":"order_direction","in":"query","description":"The order direction to use for results from this query.","required":false,"schema":{"description":"The order direction to use for results from this query.","type":"string","default":"DESCENDING","enum":["DESCENDING","ASCENDING"],"title":"Order Direction"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingMetadataPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"list"},"post":{"operationId":"create_dubbing","summary":"Dub a video or audio file","description":"Dubs a provided audio or video file into given language.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Dub_a_video_or_an_audio_file_v1_dubbing_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoDubbingResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"create"}},"/v1/dubbing/{dubbing_id}":{"get":{"operationId":"get_dubbed_metadata","summary":"Get dubbing","description":"Returns metadata about a dubbing project, including whether it's still in progress or not","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingMetadataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_dubbing","summary":"Delete dubbing","description":"Deletes a dubbing project.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDubbingResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":"dubbing","x-fern-sdk-method-name":"delete"}},"/v1/dubbing/{dubbing_id}/audio/{language_code}":{"get":{"operationId":"get_dubbed_file","summary":"Get dubbed audio","description":"Returns dub as a streamed MP3 or MP4 file. If this dub has been edited using Dubbing Studio you need to use the resource render endpoint as this endpoint only returns the original automatic dub result.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language_code","in":"path","description":"ID of the language.","required":true,"schema":{"description":"ID of the language.","type":"string","title":"Language Code"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The dubbed audio or video file","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}},"video/mp4":{"schema":{"type":"string","format":"binary"}}}},"403":{"description":"Permission denied","content":{"application/json":{"example":{"error":"permission_denied","message":"User does not have required permissions"}}}},"404":{"description":"Dubbing not found","content":{"application/json":{"example":{"error":"dubbing_not_found","message":"There is no dubbing for language {language_code}."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"425":{"description":"Dubbing not ready","content":{"application/json":{"example":{"error":"dubbing_not_dubbed","message":"Dubbing has not finished yet."}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":["dubbing","audio"],"x-fern-sdk-method-name":"get"}},"/v1/dubbing/{dubbing_id}/transcript/{language_code}":{"get":{"operationId":"get_dubbed_transcript_file","summary":"Get dubbed transcript","description":"Returns transcript for the dub as an SRT or WEBVTT file.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language_code","in":"path","description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","required":true,"schema":{"description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","type":"string","examples":["source","en","fra"],"title":"Language Code"}},{"name":"format_type","in":"query","description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","required":false,"schema":{"description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","type":"string","default":"srt","embed":true,"enum":["srt","webvtt","json"],"title":"Format Type"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DubbingTranscriptResponseModel"},{"type":"string"}],"title":"Response Get Dubbed Transcript V1 Dubbing Dubbing Id Transcript Language Code Get"}},"text/plain":{"schema":{"type":"string"},"example":"1\n00:00:01,000 --> 00:00:04,000\nHello, this is the first subtitle line\n\n2\n00:00:05,000 --> 00:00:07,000\nAnd here's the second subtitle line"}}},"403":{"description":"Anonymous users cannot use this function","content":{"application/json":{"example":{"error":"anonymous_not_allowed","message":"Anonymous users cannot use this function"}}}},"404":{"description":"Dubbing or transcript not found","content":{"application/json":{"example":{"error":"transcript_not_found","message":"No transcript was found for the dub."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"425":{"description":"Dubbing not ready","content":{"application/json":{"example":{"error":"dubbing_not_dubbed","message":"Dubbing has not finished yet."}}}}},"deprecated":true,"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":["dubbing","transcript"],"x-fern-sdk-method-name":"get_transcript_for_dub"}},"/v1/dubbing/{dubbing_id}/transcripts/{language_code}/format/{format_type}":{"get":{"operationId":"get_dubbing_transcripts","summary":"Retrieve A Transcript","description":"Fetch the transcript for one of the languages in a dub.","parameters":[{"name":"dubbing_id","in":"path","description":"ID of the dubbing project.","required":true,"schema":{"description":"ID of the dubbing project.","type":"string","title":"Dubbing Id"}},{"name":"language_code","in":"path","description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","required":true,"schema":{"description":"ISO-693 language code to retrieve the transcript for. Use 'source' to fetch the transcript of the original media.","type":"string","examples":["source","en","fra"],"title":"Language Code"}},{"name":"format_type","in":"path","description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","required":true,"schema":{"description":"Format to return transcript in. For subtitles use either 'srt' or 'webvtt', and for a full transcript use 'json'. The 'json' format is not yet supported for Dubbing Studio.","type":"string","enum":["srt","webvtt","json"],"examples":["srt","webvtt","json"],"title":"Format Type"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DubbingTranscriptsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["dubbing","dubbing","dubbing"],"x-fern-sdk-group-name":["dubbing","transcripts"],"x-fern-sdk-method-name":"get"}},"/v1/models":{"get":{"operationId":"get_models","summary":"List models","description":"Gets a list of available models.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ModelResponseModel"},"title":"Response Get Models V1 Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["models"],"x-fern-sdk-group-name":"models","x-fern-sdk-method-name":"list"}},"/v1/audio-native":{"post":{"operationId":"create_audio_native_project","summary":"Create audio native project","description":"Creates Audio Native enabled project, optionally starts conversion and returns project ID and embeddable HTML snippet.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Creates_Audio_Native_enabled_project__v1_audio_native_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioNativeCreateProjectResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"create"}},"/v1/audio-native/{project_id}/settings":{"get":{"operationId":"get_audio_native_project_settings_endpoint","summary":"Get Audio Native Project Settings","description":"Get player settings for the specific project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the Studio project.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAudioNativeProjectSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"get_settings"}},"/v1/audio-native/{project_id}/content":{"post":{"operationId":"audio_native_project_update_content_endpoint","summary":"Update audio native project","description":"Updates content for the specific AudioNative Project.","parameters":[{"name":"project_id","in":"path","description":"The ID of the project to be used. You can use the [List projects](/docs/api-reference/studio/get-projects) endpoint to list all the available projects.","required":true,"schema":{"description":"The ID of the Studio project.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Project Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Update_audio_native_Project_content_v1_audio_native__project_id__content_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioNativeEditContentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"update"}},"/v1/audio-native/content":{"post":{"operationId":"audio_native_update_content_from_url","summary":"Update Audio-Native Content From Url","description":"Finds an AudioNative project matching the provided URL, extracts content from the URL, updates the project content, and queues it for conversion and auto-publishing.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_audio_native_content_from_URL_v1_audio_native_content_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioNativeEditContentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["audio-native"],"x-fern-sdk-group-name":"audio_native","x-fern-sdk-method-name":"update_content_from_url"}},"/v1/shared-voices":{"get":{"operationId":"get_library_voices","summary":"Get shared voices","description":"Retrieves a list of shared voices.","parameters":[{"name":"page_size","in":"query","description":"How many shared voices to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many shared voices to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"title":"Page Size"}},{"name":"category","in":"query","description":"Voice category used for filtering","required":false,"schema":{"description":"Voice category used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"enum":["professional","famous","high_quality"],"examples":["professional"],"title":"Category"}},{"name":"gender","in":"query","description":"Gender used for filtering","required":false,"schema":{"description":"Gender used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["male"],"title":"Gender"}},{"name":"age","in":"query","description":"Age used for filtering","required":false,"schema":{"description":"Age used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["young"],"title":"Age"}},{"name":"accent","in":"query","description":"Accent used for filtering","required":false,"schema":{"description":"Accent used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["american"],"title":"Accent"}},{"name":"language","in":"query","description":"Language used for filtering","required":false,"schema":{"description":"Language used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["en"],"title":"Language"}},{"name":"locale","in":"query","description":"Locale used for filtering","required":false,"schema":{"description":"Locale used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["en-US"],"title":"Locale"}},{"name":"search","in":"query","description":"Search term used for filtering","required":false,"schema":{"description":"Search term used for filtering","anyOf":[{"type":"string"},{"type":"null"}],"examples":["tiktok"],"title":"Search"}},{"name":"use_cases","in":"query","description":"Use-case used for filtering","required":false,"schema":{"description":"Use-case used for filtering","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"examples":["audiobook"],"title":"Use Cases"}},{"name":"descriptives","in":"query","description":"Search term used for filtering","required":false,"schema":{"description":"Search term used for filtering","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"examples":["tiktok"],"title":"Descriptives"}},{"name":"featured","in":"query","description":"Filter featured voices","required":false,"schema":{"description":"Filter featured voices","type":"boolean","default":false,"examples":[true],"title":"Featured"}},{"name":"min_notice_period_days","in":"query","description":"Filter voices with a minimum notice period of the given number of days.","required":false,"schema":{"description":"Filter voices with a minimum notice period of the given number of days.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[30],"title":"Min Notice Period Days"}},{"name":"include_custom_rates","in":"query","description":"Include/exclude voices with custom rates","required":false,"schema":{"description":"Include/exclude voices with custom rates","anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Include Custom Rates"}},{"name":"include_live_moderated","in":"query","description":"Include/exclude voices that are live moderated","required":false,"schema":{"description":"Include/exclude voices that are live moderated","anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Include Live Moderated"}},{"name":"reader_app_enabled","in":"query","description":"Filter voices that are enabled for the reader app","required":false,"schema":{"description":"Filter voices that are enabled for the reader app","type":"boolean","default":false,"examples":[true],"title":"Reader App Enabled"}},{"name":"owner_id","in":"query","description":"Filter voices by public owner ID","required":false,"schema":{"description":"Filter voices by public owner ID","anyOf":[{"type":"string"},{"type":"null"}],"examples":["7c9fab611d9a0e1fb2e7448a0c294a8804efc2bcc324b0a366a5d5232b7d1532"],"title":"Owner Id"}},{"name":"sort","in":"query","description":"Sort criteria. Must be one of: created_date, usage_character_count_1y, trending, cloned_by_count.","required":false,"schema":{"description":"Sort criteria. Must be one of: created_date, usage_character_count_1y, trending, cloned_by_count.","default":"created_date","anyOf":[{"type":"string"},{"type":"null"}],"enum":["created_date","usage_character_count_1y","trending","cloned_by_count"],"examples":["created_date"],"title":"Sort"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Page"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLibraryVoicesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"get_shared"}},"/v1/similar-voices":{"post":{"operationId":"get_similar_library_voices","summary":"List similar voices","description":"Returns a list of shared voices similar to the provided audio sample. If neither similarity_threshold nor top_k is provided, we will apply default values.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Get_similar_library_voices_v1_similar_voices_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLibraryVoicesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["voices"],"x-fern-sdk-group-name":"voices","x-fern-sdk-method-name":"find_similar_voices"}},"/v1/usage/character-stats":{"get":{"operationId":"usage_characters","summary":"Get character usage metrics","description":"(Deprecated) This endpoint is deprecated. Use /v1/workspace/analytics/query/usage-by-product-over-time instead, which exposes the bucket size as `interval_seconds` (an integer in seconds) rather than `aggregation_interval`. Returns the usage metrics for the current user or the entire workspace they are part of. The response provides a time axis based on the specified aggregation interval (default: day), with usage values for each interval along that axis. Usage is broken down by the selected breakdown type. For example, breakdown type \"voice\" will return the usage of each voice for each interval along the time axis.","parameters":[{"name":"start_unix","in":"query","description":"UTC Unix timestamp for the start of the usage window, in milliseconds. To include the first day of the window, the timestamp should be at 00:00:00 of that day.","required":true,"schema":{"description":"UTC Unix timestamp for the start of the usage window, in milliseconds. To include the first day of the window, the timestamp should be at 00:00:00 of that day.","type":"integer","examples":["1685574000"],"title":"Start Unix"}},{"name":"end_unix","in":"query","description":"UTC Unix timestamp for the end of the usage window, in milliseconds. To include the last day of the window, the timestamp should be at 23:59:59 of that day.","required":true,"schema":{"description":"UTC Unix timestamp for the end of the usage window, in milliseconds. To include the last day of the window, the timestamp should be at 23:59:59 of that day.","type":"integer","examples":["1688165999"],"title":"End Unix"}},{"name":"include_workspace_metrics","in":"query","description":"Whether or not to include the statistics of the entire workspace.","required":false,"schema":{"description":"Whether or not to include the statistics of the entire workspace.","type":"boolean","default":false,"title":"Include Workspace Metrics"}},{"name":"breakdown_type","in":"query","description":"How to break down the information. Cannot be \"user\" if include_workspace_metrics is False.","required":false,"schema":{"description":"How to break down the information. Cannot be \"user\" if include_workspace_metrics is False.","default":"none","$ref":"#/components/schemas/BreakdownTypes"}},{"name":"aggregation_interval","in":"query","description":"How to aggregate usage data over time. Can be \"hour\", \"day\", \"week\", \"month\", or \"cumulative\".","required":false,"schema":{"description":"How to aggregate usage data over time. Can be \"hour\", \"day\", \"week\", \"month\", or \"cumulative\".","default":"day","$ref":"#/components/schemas/UsageAggregationInterval"}},{"name":"aggregation_bucket_size","in":"query","description":"Aggregation bucket size in seconds. Overrides the aggregation interval.","required":false,"schema":{"description":"Aggregation bucket size in seconds. Overrides the aggregation interval.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aggregation Bucket Size"}},{"name":"metric","in":"query","description":"Which metric to aggregate.","required":false,"schema":{"description":"Which metric to aggregate.","default":"credits","$ref":"#/components/schemas/MetricType"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageCharactersResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"x-fern-sdk-group-name":"usage","x-fern-sdk-method-name":"get"}},"/v1/pronunciation-dictionaries/add-from-file":{"post":{"operationId":"add_from_file","summary":"Create a pronunciation dictionary from a file","description":"Creates a new pronunciation dictionary from a lexicon .PLS file","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_file_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPronunciationDictionaryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"create_from_file"}},"/v1/pronunciation-dictionaries/add-from-rules":{"post":{"operationId":"add_from_rules","summary":"Create a pronunciation dictionary from rules","description":"Creates a new pronunciation dictionary from provided rules.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_rules_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPronunciationDictionaryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"create_from_rules"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}":{"patch":{"operationId":"patch_pronunciation_dictionary","summary":"Update Pronunciation Dictionary","description":"Partially update the pronunciation dictionary without changing the version","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPronunciationDictionaryMetadataResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"update"},"get":{"operationId":"get_pronunciation_dictionary_metadata","summary":"Get pronunciation dictionary","description":"Get metadata for a pronunciation dictionary","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPronunciationDictionaryWithRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"get"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}/set-rules":{"post":{"operationId":"set_rules","summary":"Set pronunciation dictionary rules","description":"Replaces all existing rules on the pronunciation dictionary with the provided ones.","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Set_rules_on_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__set_rules_post"}}}},"responses":{"200":{"description":"Successfully set rules on the pronunciation dictionary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PronunciationDictionaryRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":["pronunciation_dictionaries","rules"],"x-fern-sdk-method-name":"set"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}/add-rules":{"post":{"operationId":"add_rules","summary":"Add pronunciation dictionary rules","description":"Add rules to the pronunciation dictionary. If a rule with the same string_to_replace already exists, it will be replaced.","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_rules_to_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__add_rules_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PronunciationDictionaryRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":["pronunciation_dictionaries","rules"],"x-fern-sdk-method-name":"add"}},"/v1/pronunciation-dictionaries/{pronunciation_dictionary_id}/remove-rules":{"post":{"operationId":"remove_rules","summary":"Remove pronunciation dictionary rules","description":"Remove rules from the pronunciation dictionary","parameters":[{"name":"pronunciation_dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Pronunciation Dictionary Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Remove_rules_from_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__remove_rules_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PronunciationDictionaryRulesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":["pronunciation_dictionaries","rules"],"x-fern-sdk-method-name":"remove"}},"/v1/pronunciation-dictionaries/{dictionary_id}/{version_id}/download":{"get":{"operationId":"get_pronunciation_dictionary_version_pls","summary":"Get pronunciation dictionary by version","description":"Get a PLS file with a pronunciation dictionary version rules","parameters":[{"name":"dictionary_id","in":"path","description":"The id of the pronunciation dictionary","required":true,"schema":{"description":"The id of the pronunciation dictionary","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Dictionary Id"}},{"name":"version_id","in":"path","description":"The id of the pronunciation dictionary version","required":true,"schema":{"description":"The id of the pronunciation dictionary version","type":"string","examples":["BdF0s0aZ3oFoKnDYdTox"],"title":"Version Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The PLS file containing pronunciation dictionary rules","headers":{"Content-Disposition":{"description":"Attachment filename","schema":{"type":"string"}}},"content":{"text/plain":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"download"}},"/v1/pronunciation-dictionaries":{"get":{"operationId":"get_pronunciation_dictionaries_metadata","summary":"List pronunciation dictionaries","description":"Get a list of the pronunciation dictionaries you have access to and their metadata","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many pronunciation dictionaries to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many pronunciation dictionaries to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"sort","in":"query","description":"Which field to sort by, one of 'created_at_unix' or 'name'.","required":false,"schema":{"description":"Which field to sort by, one of 'created_at_unix' or 'name'.","default":"creation_time_unix","anyOf":[{"enum":["creation_time_unix","name"],"type":"string"},{"type":"null"}],"examples":["creation_time_unix"],"title":"Sort"}},{"name":"sort_direction","in":"query","description":"Which direction to sort the voices in. 'ascending' or 'descending'.","required":false,"schema":{"description":"Which direction to sort the voices in. 'ascending' or 'descending'.","default":"DESCENDING","anyOf":[{"type":"string"},{"type":"null"}],"examples":["descending"],"title":"Sort Direction"}},{"name":"include_archived","in":"query","description":"Whether to include archived pronunciation dictionaries in the response.","required":false,"schema":{"description":"Whether to include archived pronunciation dictionaries in the response.","type":"boolean","default":true,"examples":[false],"title":"Include Archived"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPronunciationDictionariesMetadataResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Pronunciation Dictionary"],"x-fern-sdk-group-name":"pronunciation_dictionaries","x-fern-sdk-method-name":"list"}},"/v1/workspaces/api-keys/disable":{"post":{"operationId":"disable","summary":"Disable API key","description":"Disable the API key used to authenticate this request. Requires the query parameter `api_key_name=self` as an explicit confirmation.","parameters":[{"name":"api_key_name","in":"query","description":"Must be set to `self` to disable the API key used to authenticate this request. Required as an explicit confirmation to avoid accidentally disabling the wrong key.","required":true,"schema":{"description":"Must be set to `self` to disable the API key used to authenticate this request. Required as an explicit confirmation to avoid accidentally disabling the wrong key.","type":"string","title":"Api Key Name","example":"self"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace","api-key"],"x-fern-sdk-group-name":["workspaces","api_keys"],"x-fern-sdk-method-name":"disable"}},"/v1/workspaces/api-keys/third-party-disabling":{"post":{"operationId":"set_third_party_disabling_policy","summary":"Set Workspace Third-Party Disabling Policy","description":"Set the workspace-wide Third-Party Disabling policy. When set, it forces, for every API key in the workspace, whether the holder of a key (potentially a third party who found it) may disable it via the self-disable endpoint or when it leaks publicly — overriding each key's own setting. Pass `true` to allow it for all keys, `false` to forbid it for all keys, or `null` to clear the override so per-key values and the plan default apply again. Workspace admins only.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Set_workspace_Third_Party_Disabling_policy_v1_workspaces_api_keys_third_party_disabling_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace","api-key"]}},"/v1/service-accounts/{service_account_user_id}/api-keys":{"get":{"operationId":"get_service_account_api_keys_route","summary":"Get API keys","description":"Get all API keys for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceApiKeyListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"create_service_account_api_key","summary":"Create API key","description":"Create a new API key for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateApiKeyResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"create"}},"/v1/service-accounts/{service_account_user_id}/api-keys/{api_key_id}":{"patch":{"operationId":"edit_service_account_api_key","summary":"Update API key","description":"Update an existing API key for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_edit_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys__api_key_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_service_account_api_key","summary":"Delete API key","description":"Delete an existing API key for a service account","parameters":[{"name":"service_account_user_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account User Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts","api_keys"],"x-fern-sdk-method-name":"delete"}},"/v1/workspace/audit-logs":{"get":{"operationId":"get_workspace_audit_logs","summary":"Get Workspace Audit Logs","description":"Returns the audit log for the workspace. Requires enterprise tier and the audit_log_read permission.","parameters":[{"name":"limit","in":"query","description":"Maximum number of entries per page","required":false,"schema":{"description":"Maximum number of entries per page","type":"integer","default":50,"maximum":100,"minimum":1,"title":"Limit"}},{"name":"cursor","in":"query","description":"Cursor for the next page (from previous response)","required":false,"schema":{"description":"Cursor for the next page (from previous response)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"time_from_unix_ms","in":"query","description":"Only include entries at or after this time (ms since epoch)","required":false,"schema":{"description":"Only include entries at or after this time (ms since epoch)","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time From Unix Ms"}},{"name":"time_to_unix_ms","in":"query","description":"Only include entries at or before this time (ms since epoch)","required":false,"schema":{"description":"Only include entries at or before this time (ms since epoch)","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time To Unix Ms"}},{"name":"actor_uid","in":"query","description":"Filter by actor user ID","required":false,"schema":{"description":"Filter by actor user ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Uid"}},{"name":"class_name","in":"query","description":"Filter by OCSF event class name (e.g. Account Change)","required":false,"schema":{"description":"Filter by OCSF event class name (e.g. Account Change)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"}},{"name":"activity_name","in":"query","description":"Filter by audit activity name (e.g. Subscription Creation)","required":false,"schema":{"description":"Filter by audit activity name (e.g. Subscription Creation)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceAuditLogsPageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","audit_logs"],"x-fern-sdk-method-name":"list"}},"/v1/workspace/auth-connections":{"post":{"operationId":"create_auth_connection","summary":"Create Workspace Auth Connection","description":"Create a new OAuth2 auth connection for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Auth connection to create","anyOf":[{"$ref":"#/components/schemas/CreateOAuth2ClientCredsRequest"},{"$ref":"#/components/schemas/CreateCustomHeaderAuthRequest"},{"$ref":"#/components/schemas/CreateBasicAuthRequest"},{"$ref":"#/components/schemas/CreateBearerAuthRequest"},{"$ref":"#/components/schemas/CreateOAuth2JWTRequest"},{"$ref":"#/components/schemas/CreatePrivateKeyJWTRequest"},{"$ref":"#/components/schemas/CreateMTLSAuthRequest"}],"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"The type of auth connection config","discriminator":{"propertyName":"auth_type","mapping":{"oauth2_client_credentials":"#/components/schemas/OAuth2ClientCredsResponse","refresh_token_auth":"#/components/schemas/RefreshTokenAuthResponse","basic_auth":"#/components/schemas/BasicAuthResponse","bearer_auth":"#/components/schemas/BearerAuthResponse","oauth2_jwt":"#/components/schemas/OAuth2JWTResponse","private_key_jwt":"#/components/schemas/PrivateKeyJWTResponse","mtls":"#/components/schemas/MTLSAuthResponse","custom_header_auth":"#/components/schemas/CustomHeaderAuthResponse","api_integration_oauth2_auth_code":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse","api_integration_oauth2_custom_app":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse","whatsapp_auth":"#/components/schemas/WhatsAppAuthResponse","slack_bot_auth":"#/components/schemas/SlackBotAuthResponse","url_secret":"#/components/schemas/UrlSecretAuthResponse"}},"oneOf":[{"$ref":"#/components/schemas/OAuth2ClientCredsResponse"},{"$ref":"#/components/schemas/RefreshTokenAuthResponse"},{"$ref":"#/components/schemas/BasicAuthResponse"},{"$ref":"#/components/schemas/BearerAuthResponse"},{"$ref":"#/components/schemas/OAuth2JWTResponse"},{"$ref":"#/components/schemas/PrivateKeyJWTResponse"},{"$ref":"#/components/schemas/MTLSAuthResponse"},{"$ref":"#/components/schemas/CustomHeaderAuthResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse"},{"$ref":"#/components/schemas/WhatsAppAuthResponse"},{"$ref":"#/components/schemas/SlackBotAuthResponse"},{"$ref":"#/components/schemas/UrlSecretAuthResponse"}],"title":"Response Create Workspace Auth Connection V1 Workspace Auth Connections Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"list_auth_connections","summary":"Get Workspace Auth Connections","description":"Get all auth connections for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAuthConnectionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"list"}},"/v1/workspace/auth-connections/{auth_connection_id}":{"patch":{"operationId":"update_auth_connection","summary":"Update Workspace Auth Connection","description":"Update an auth connection","parameters":[{"name":"auth_connection_id","in":"path","required":true,"schema":{"type":"string","title":"Auth Connection Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Updated auth connection fields","anyOf":[{"$ref":"#/components/schemas/UpdateOAuth2ClientCredsRequest"},{"$ref":"#/components/schemas/UpdateBasicAuthRequest"},{"$ref":"#/components/schemas/UpdateBearerAuthRequest"},{"$ref":"#/components/schemas/UpdateOAuth2JWTRequest"}],"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"The type of auth connection config","discriminator":{"propertyName":"auth_type","mapping":{"oauth2_client_credentials":"#/components/schemas/OAuth2ClientCredsResponse","refresh_token_auth":"#/components/schemas/RefreshTokenAuthResponse","basic_auth":"#/components/schemas/BasicAuthResponse","bearer_auth":"#/components/schemas/BearerAuthResponse","oauth2_jwt":"#/components/schemas/OAuth2JWTResponse","private_key_jwt":"#/components/schemas/PrivateKeyJWTResponse","mtls":"#/components/schemas/MTLSAuthResponse","custom_header_auth":"#/components/schemas/CustomHeaderAuthResponse","api_integration_oauth2_auth_code":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse","api_integration_oauth2_custom_app":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse","whatsapp_auth":"#/components/schemas/WhatsAppAuthResponse","slack_bot_auth":"#/components/schemas/SlackBotAuthResponse","url_secret":"#/components/schemas/UrlSecretAuthResponse"}},"oneOf":[{"$ref":"#/components/schemas/OAuth2ClientCredsResponse"},{"$ref":"#/components/schemas/RefreshTokenAuthResponse"},{"$ref":"#/components/schemas/BasicAuthResponse"},{"$ref":"#/components/schemas/BearerAuthResponse"},{"$ref":"#/components/schemas/OAuth2JWTResponse"},{"$ref":"#/components/schemas/PrivateKeyJWTResponse"},{"$ref":"#/components/schemas/MTLSAuthResponse"},{"$ref":"#/components/schemas/CustomHeaderAuthResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse"},{"$ref":"#/components/schemas/WhatsAppAuthResponse"},{"$ref":"#/components/schemas/SlackBotAuthResponse"},{"$ref":"#/components/schemas/UrlSecretAuthResponse"}],"title":"Response Update Workspace Auth Connection V1 Workspace Auth Connections Auth Connection Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_auth_connection","summary":"Delete Workspace Auth Connection","description":"Delete an auth connection","parameters":[{"name":"auth_connection_id","in":"path","required":true,"schema":{"type":"string","title":"Auth Connection Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","auth_connections"],"x-fern-sdk-method-name":"delete"}},"/v1/service-accounts":{"get":{"operationId":"get_workspace_service_accounts","summary":"Get service accounts","description":"List all service accounts in the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceServiceAccountListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"create_service_account","summary":"Create Service Account","description":"Create a new service account in the workspace. By default, a workspace can have up to 20 service accounts. Enterprise customers may request an increase to this limit, up to 100.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_service_account_v1_service_accounts_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateServiceAccountResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["service_accounts"],"x-fern-sdk-method-name":"create"}},"/v1/workspace/groups":{"get":{"operationId":"get_groups_endpoint","summary":"List workspace groups","description":"Get all groups in the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkspaceGroupResponseModel"},"title":"Response Get All Groups V1 Workspace Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups"],"x-fern-sdk-method-name":"list"}},"/v1/workspace/groups/search":{"get":{"operationId":"search_groups","summary":"Search user group","description":"Searches for user groups in the workspace. Multiple or no groups may be returned.","parameters":[{"name":"name","in":"query","description":"Name of the target group.","required":true,"schema":{"description":"Name of the target group.","type":"string","title":"Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceGroupByNameResponseModel"},"title":"Response Search User Groups V1 Workspace Groups Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups"],"x-fern-sdk-method-name":"search"}},"/v1/workspace/groups/{group_id}/members/remove":{"post":{"operationId":"remove_member","summary":"Remove member from user group","description":"Removes a member from the specified group. Requires `group_members_manage` permission.","parameters":[{"name":"group_id","in":"path","description":"The ID of the target group.","required":true,"schema":{"description":"The ID of the target group.","type":"string","title":"Group Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Delete_member_from_user_group_v1_workspace_groups__group_id__members_remove_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkspaceGroupMemberResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups","members"],"x-fern-sdk-method-name":"remove"}},"/v1/workspace/groups/{group_id}/members":{"post":{"operationId":"add_member","summary":"Add member to user group","description":"Adds a member of your workspace to the specified group. Requires `group_members_manage` permission.","parameters":[{"name":"group_id","in":"path","description":"The ID of the target group.","required":true,"schema":{"description":"The ID of the target group.","type":"string","title":"Group Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Add_member_to_user_group_v1_workspace_groups__group_id__members_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceGroupMemberResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","groups","members"],"x-fern-sdk-method-name":"add"}},"/v1/workspace/invites/add":{"post":{"operationId":"invite_user","summary":"Invite user","description":"Sends an email invitation to join your workspace to the provided email. If the user doesn't have an account they will be prompted to create one. If the user accepts this invite they will be added as a user to your workspace and your subscription using one of your seats. This endpoint may only be called by workspace members with the WORKSPACE_MEMBERS_INVITE permission. If the user is already in the workspace a 400 error will be returned.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Invite_user_v1_workspace_invites_add_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceInviteResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","invites"],"x-fern-sdk-method-name":"create"}},"/v1/workspace/invites/add-bulk":{"post":{"operationId":"invite_users_bulk","summary":"Invite Multiple Users","description":"Sends email invitations to join your workspace to the provided emails. Requires all email addresses to be part of a verified domain. If the users don't have an account they will be prompted to create one. If the users accept these invites they will be added as users to your workspace and your subscription using one of your seats. This endpoint may only be called by workspace members with the WORKSPACE_MEMBERS_INVITE permission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Invite_multiple_users_v1_workspace_invites_add_bulk_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceInviteResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","invites"],"x-fern-sdk-method-name":"create_batch"}},"/v1/workspace/invites":{"delete":{"operationId":"delete_invite","summary":"Delete invite","description":"Invalidates an existing email invitation. The invitation will still show up in the inbox it has been delivered to, but activating it to join the workspace won't work. This endpoint may only be called by workspace members with the WORKSPACE_MEMBERS_INVITE permission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Delete_existing_invitation_v1_workspace_invites_delete"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkspaceInviteResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","invites"],"x-fern-sdk-method-name":"delete"}},"/v1/workspace/members":{"get":{"operationId":"get_workspace_members","summary":"Get Workspace Members","description":"Gets a list of all members of the workspace, including locked members. Service accounts are excluded. Requires the workspace_members_read permission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMemberResponseModel"},"title":"Response Get Workspace Members V1 Workspace Members Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","members"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"update_workspace_member","summary":"Update member","description":"Updates attributes of a workspace member. Apart from the email identifier, all parameters will remain unchanged unless specified. This endpoint may only be called by workspace administrators.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_member_v1_workspace_members_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceMemberResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","members"],"x-fern-sdk-method-name":"update"}},"/v1/workspace/resources/{resource_id}":{"get":{"operationId":"get_resource_metadata","summary":"Get Resource","description":"Gets the metadata of a resource by ID.","parameters":[{"name":"resource_id","in":"path","description":"The ID of the target resource.","required":true,"schema":{"description":"The ID of the target resource.","type":"string","title":"Resource Id"}},{"name":"resource_type","in":"query","description":"Resource type of the target resource.","required":true,"schema":{"description":"Resource type of the target resource.","$ref":"#/components/schemas/WorkspaceResourceType"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceMetadataResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","resources"],"x-fern-sdk-method-name":"get"}},"/v1/workspace/resources/{resource_id}/share":{"post":{"operationId":"share_resource_endpoint","summary":"Share Workspace Resource","description":"Grants a role (one of 'admin', 'editor', 'commenter', or 'viewer') on a workspace resource to a user, group, or workspace (service account) API key. This overrides any existing role the target has on the resource. To target a user or service account, pass only the user email; the user must be in your workspace. To target a group, pass only the group id. To target a workspace (service account) API key, pass the api key id; the resource will be shared with the service account associated with that key. You must have admin access to the resource to share it.","parameters":[{"name":"resource_id","in":"path","description":"The ID of the target resource.","required":true,"schema":{"description":"The ID of the target resource.","type":"string","title":"Resource Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Share_workspace_resource_v1_workspace_resources__resource_id__share_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","resources"],"x-fern-sdk-method-name":"share"}},"/v1/workspace/resources/{resource_id}/unshare":{"post":{"operationId":"unshare_resource_endpoint","summary":"Unshare Workspace Resource","description":"Removes any existing role on a workspace resource from a user, group, or workspace (service account) API key. To target a user or service account, pass only the user email; the user must be in your workspace. To target a group, pass only the group id. To target a workspace (service account) API key, pass the api key id; the resource will be unshared from the service account associated with that key. You must have admin access to the resource to unshare it. You cannot remove permissions from the user who created the resource.","parameters":[{"name":"resource_id","in":"path","description":"The ID of the target resource.","required":true,"schema":{"description":"The ID of the target resource.","type":"string","title":"Resource Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Unshare_workspace_resource_v1_workspace_resources__resource_id__unshare_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":["workspace","resources"],"x-fern-sdk-method-name":"unshare"}},"/v1/workspace/webhooks":{"get":{"operationId":"get_workspace_webhooks_route","summary":"List Workspace Webhooks","description":"List all webhooks for a workspace","parameters":[{"name":"include_usages","in":"query","description":"Whether to include active usages of the webhook, only usable by admins","required":false,"schema":{"description":"Whether to include active usages of the webhook, only usable by admins","type":"boolean","default":false,"examples":[false],"title":"Include Usages"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceWebhookListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"list"},"post":{"operationId":"create_workspace_webhook_route","summary":"Create Workspace Webhook","description":"Create a new webhook for the workspace with the specified authentication type.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_workspace_webhook_v1_workspace_webhooks_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateWebhookResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"create"}},"/v1/workspace/webhooks/{webhook_id}":{"patch":{"operationId":"edit_workspace_webhook_route","summary":"Update Workspace Webhook","description":"Update the specified workspace webhook","parameters":[{"name":"webhook_id","in":"path","description":"The unique ID for the webhook","required":true,"schema":{"description":"The unique ID for the webhook","type":"string","examples":["G007vmtq9uWYl7SUW9zGS8GZZa1K"],"title":"Webhook Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_workspace_webhook_v1_workspace_webhooks__webhook_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchWorkspaceWebhookResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_workspace_webhook_route","summary":"Delete Workspace Webhook","description":"Delete the specified workspace webhook","parameters":[{"name":"webhook_id","in":"path","description":"The unique ID for the webhook","required":true,"schema":{"description":"The unique ID for the webhook","type":"string","examples":["G007vmtq9uWYl7SUW9zGS8GZZa1K"],"title":"Webhook Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkspaceWebhookResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["workspace"],"x-fern-sdk-group-name":"webhooks","x-fern-sdk-method-name":"delete"}},"/v1/music/video-to-music":{"post":{"operationId":"video_to_music","summary":"Video To Music","description":"Generate background music from one or more video files. Videos are combined in order. Optional description and style tags influence the generated music.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Video_to_Music_v1_music_video_to_music_post"}}}},"responses":{"200":{"description":"Generated audio file matching the video. Content-Type and file extension depend on the output_format parameter (default mp3).","content":{"application/zip":{"schema":{"type":"string","format":"binary"}},"audio/*":{"schema":{"type":"string","format":"binary"}}}},"403":{"description":"Subscription required."},"422":{"description":"Validation error (e.g. invalid or missing videos)."}},"tags":["video-to-music"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"video_to_music"}},"/v1/speech-to-text":{"post":{"operationId":"speech_to_text","summary":"Create transcript","description":"Transcribe an audio or video file. If webhook is set to true, the request will be processed asynchronously and results sent to configured webhooks. When use_multi_channel is true and the provided audio has multiple channels, a 'transcripts' object with separate transcripts for each channel is returned; set multichannel_output_style='combined' to instead receive a single transcript with all channels merged and sorted by time. Otherwise, returns a single transcript. The optional webhook_metadata parameter allows you to attach custom data that will be included in webhook responses for request correlation and tracking.","parameters":[{"name":"token","in":"query","description":"A single-use authentication token created via POST /v1/single-use-token/batch_scribe. This token can only be used once and expires after 15 minutes. Alternative to API key or bearer token authentication for frontend clients.","required":false,"schema":{"description":"A single-use authentication token created via POST /v1/single-use-token/batch_scribe. This token can only be used once and expires after 15 minutes. Alternative to API key or bearer token authentication for frontend clients.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}},{"name":"enable_logging","in":"query","description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean log and transcript storage features are unavailable for this request. Zero retention mode may only be used by enterprise customers.","required":false,"schema":{"description":"When enable_logging is set to false zero retention mode will be used for the request. This will mean log and transcript storage features are unavailable for this request. Zero retention mode may only be used by enterprise customers.","type":"boolean","default":true,"title":"Enable request logging."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Speech_to_Text_v1_speech_to_text_post"},"encoding":{"additional_formats":{"contentType":"application/json"}}}}},"responses":{"200":{"description":"Synchronous transcription result","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},{"$ref":"#/components/schemas/MultichannelSpeechToTextResponseModel"},{"$ref":"#/components/schemas/SpeechToTextWebhookResponseModel"}],"title":"Response Speech To Text V1 Speech To Text Post"},"examples":{"single_channel":{"summary":"Single channel response","value":{"language_code":"en","language_probability":0.98,"text":"Hello world!","words":[{"text":"Hello","start":0,"end":0.5,"type":"word","speaker_id":"speaker_1","logprob":-0.124}]}},"multichannel":{"summary":"Multichannel response","value":{"transcripts":[{"language_code":"en","language_probability":0.98,"text":"Hello from channel one.","words":[{"text":"Hello","start":0,"end":0.5,"type":"word","speaker_id":"speaker_0","channel_index":0,"logprob":-0.124}]},{"language_code":"en","language_probability":0.97,"text":"Greetings from channel two.","words":[{"text":"Greetings","start":0.1,"end":0.7,"type":"word","speaker_id":"speaker_1","channel_index":1,"logprob":-0.156}]}]}}}}}},"202":{"description":"Asynchronous request accepted","content":{"application/json":{"example":{"message":"Request accepted. Transcription result will be sent to the webhook.","request_id":"abc123"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-text"],"x-fern-sdk-group-name":"speech_to_text","x-fern-sdk-method-name":"convert"}},"/v1/speech-to-text/transcripts/{transcription_id}":{"get":{"operationId":"get_transcript_by_id","summary":"Get Transcript By Id","description":"Retrieve a previously generated transcript by its ID.","parameters":[{"name":"transcription_id","in":"path","description":"The unique ID of the transcript to retrieve","required":true,"schema":{"description":"The unique ID of the transcript to retrieve","type":"string","title":"Transcription Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"The transcript data","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},{"$ref":"#/components/schemas/MultichannelSpeechToTextResponseModel"}],"oneOf":[{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},{"$ref":"#/components/schemas/MultichannelSpeechToTextResponseModel"}],"title":"Response Get Transcript By Id V1 Speech To Text Transcripts Transcription Id Get"}}}},"401":{"description":"Authentication required","content":{"application/json":{"example":{"detail":{"status":"unauthorized","message":"Authentication required."}}}}},"404":{"description":"Transcript not found","content":{"application/json":{"example":{"detail":{"status":"not_found_error","message":"Transcript not found."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-text"],"x-fern-sdk-group-name":["speech_to_text","transcripts"],"x-fern-sdk-method-name":"get"},"delete":{"operationId":"delete_transcript_by_id","summary":"Delete Transcript By Id","description":"Delete a previously generated transcript by its ID.","parameters":[{"name":"transcription_id","in":"path","description":"The unique ID of the transcript to delete","required":true,"schema":{"description":"The unique ID of the transcript to delete","type":"string","title":"Transcription Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Delete completed successfully.","content":{"application/json":{"schema":{}}}},"401":{"description":"Authentication required","content":{"application/json":{"example":{"detail":{"status":"unauthorized","message":"Authentication required."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["speech-to-text"],"x-fern-sdk-group-name":["speech_to_text","transcripts"],"x-fern-sdk-method-name":"delete"}},"/v1/single-use-token/{token_type}":{"post":{"operationId":"get_single_use_token","summary":"Create Single Use Token","description":"Generate a time limited single-use token with embedded authentication for frontend clients.","parameters":[{"name":"token_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/SingleUseTokenType"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleUseTokenResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Single Use Token"],"x-fern-sdk-group-name":["tokens","single_use"],"x-fern-sdk-method-name":"create"}},"/v1/forced-alignment":{"post":{"operationId":"forced_alignment","summary":"Create Forced Alignment","description":"Force align an audio file to text. Use this endpoint to get the timing information for each character and word in an audio file based on a provided text transcript.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_forced_alignment_v1_forced_alignment_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForcedAlignmentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["forced-alignment"],"x-fern-sdk-group-name":"forced_alignment","x-fern-sdk-method-name":"create"}},"/v1/convai/conversation/get-signed-url":{"get":{"operationId":"get_conversation_signed_link","summary":"Get Signed Url","description":"Get a signed url to start a conversation with an agent with an agent that requires authorization","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","type":"string","examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"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":{"description":"Whether to include a conversation_id with the response. If included, the conversation_signature cannot be used again.","type":"boolean","default":false,"title":"Include Conversation Id"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"environment","in":"query","description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","required":false,"schema":{"description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations"],"x-fern-sdk-method-name":"get_signed_url","x-fern-audiences":["convai"]}},"/v1/convai/conversation/token":{"get":{"operationId":"get_livekit_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.","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","type":"string","examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"participant_name","in":"query","description":"Optional custom participant name. If not provided, user ID will be used","required":false,"schema":{"description":"Optional custom participant name. If not provided, user ID will be used","anyOf":[{"type":"string"},{"type":"null"}],"title":"Participant Name"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"environment","in":"query","description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","required":false,"schema":{"description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations"],"x-fern-sdk-method-name":"get_webrtc_token","x-fern-audiences":["convai"]}},"/v1/convai/twilio/outbound-call":{"post":{"operationId":"handle_twilio_outbound_call","summary":"Handle An Outbound Call Via Twilio","description":"Handle an outbound call via Twilio","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Handle_an_outbound_call_via_Twilio_v1_convai_twilio_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","twilio"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/twilio/register-call":{"post":{"operationId":"register_twilio_call","summary":"Register A Twilio Call And Return Twiml","description":"Register a Twilio call and return TwiML to connect the call","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Register_a_Twilio_call_and_return_TwiML_v1_convai_twilio_register_call_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","twilio"],"x-fern-sdk-method-name":"register_call","x-fern-audiences":["convai"]}},"/v1/convai/exotel/outbound-call":{"post":{"operationId":"handle_exotel_outbound_call","summary":"Handle An Outbound Call Via Exotel","description":"Handle an outbound call via Exotel Connect API","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Handle_an_outbound_call_via_Exotel_v1_convai_exotel_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","exotel"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp/outbound-call":{"post":{"operationId":"whatsapp_outbound_call","summary":"Make An Outbound Call Via Whatsapp","description":"Make an outbound call via WhatsApp","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Make_an_outbound_call_via_WhatsApp_v1_convai_whatsapp_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","whatsapp"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp/outbound-message":{"post":{"operationId":"whatsapp_outbound_message","summary":"Send An Outbound Message Via Whatsapp","description":"Send an outbound message via WhatsApp","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Send_an_outbound_message_via_WhatsApp_v1_convai_whatsapp_outbound_message_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","whatsapp"],"x-fern-sdk-method-name":"outbound_message","x-fern-audiences":["convai"]}},"/v1/convai/agents/create":{"post":{"operationId":"create_agent_route","summary":"Create agent","description":"Create an agent from a config object","parameters":[{"name":"enable_versioning","in":"query","description":"Deprecated: all agents are versioned. This parameter is ignored.","required":false,"schema":{"description":"Deprecated: all agents are versioned. This parameter is ignored.","type":"boolean","default":true,"deprecated":true,"title":"Enable Versioning"},"deprecated":true},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_Agent_v1_convai_agents_create_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agents/summaries":{"get":{"operationId":"get_agent_summaries_route","summary":"Get Agent Summaries","description":"Returns summaries for the specified agents.","parameters":[{"name":"agent_ids","in":"query","description":"List of agent IDs to fetch summaries for","required":true,"schema":{"description":"List of agent IDs to fetch summaries for","type":"array","items":{"type":"string"},"examples":["J3Pbu5gP6NNKBscdCdwB","K4Qcu6hQ7OOLCtdeDeXC"],"max_items":100,"title":"Agent Ids"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/AgentSummaryBatchSuccessfulResponseModel"},{"$ref":"#/components/schemas/BatchFailureResponseModel"}],"discriminator":{"propertyName":"status","mapping":{"success":"#/components/schemas/AgentSummaryBatchSuccessfulResponseModel","failure":"#/components/schemas/BatchFailureResponseModel"}}},"title":"Response Get Agent Summaries V1 Convai Agents Summaries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","summaries"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}":{"get":{"operationId":"get_agent_route","summary":"Get agent","description":"Retrieve config for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"version_id","in":"query","description":"The ID of the agent version to use","required":false,"schema":{"description":"The ID of the agent version to use","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agtvrsn_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Version Id"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"patch_agent_settings_route","summary":"Update agent","description":"Patches an Agent settings","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"enable_versioning_if_not_enabled","in":"query","description":"Deprecated: all agents are versioned. This parameter is ignored.","required":false,"schema":{"description":"Deprecated: all agents are versioned. This parameter is ignored.","type":"boolean","default":true,"deprecated":true,"title":"Enable Versioning If Not Enabled"},"deprecated":true},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"description":"The ID of the branch to use","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Patches_an_Agent_settings_v1_convai_agents__agent_id__patch"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_agent_route","summary":"Delete agent","description":"Delete an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response"},"204":{"description":"Agent successfully deleted"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/widget":{"get":{"operationId":"get_agent_widget_route","summary":"Get Agent Widget Config","description":"Retrieve the widget configuration for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"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":{"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","anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Signature"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","widget"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/link":{"get":{"operationId":"get_agent_link_route","summary":"Get Shareable Agent Link","description":"Get the current link used to share the agent with others","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","link"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/avatar":{"post":{"operationId":"post_agent_avatar_route","summary":"Post Agent Avatar","description":"Sets the avatar for an agent displayed in the widget","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Post_Agent_avatar_v1_convai_agents__agent_id__avatar_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","widget","avatar"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agents":{"get":{"operationId":"get_agents_route","summary":"List Agents","description":"Returns a list of your agents and their metadata.","parameters":[{"name":"page_size","in":"query","description":"How many Agents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Agents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"search","in":"query","description":"Search by agents name.","required":false,"schema":{"description":"Search by agents name.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"archived","in":"query","description":"Filter agents by archived status","required":false,"schema":{"description":"Filter agents by archived status","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[false],"title":"Archived"}},{"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":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Show Only Owned Agents"},"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":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/AgentSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agent/{agent_id}/knowledge-base/size":{"get":{"operationId":"get_agent_knowledge_base_size","summary":"Returns The Size Of The Agent'S Knowledge Base","description":"Returns the number of pages in the agent's knowledge base.","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base"],"x-fern-sdk-method-name":"size","x-fern-audiences":["convai"]}},"/v1/convai/agent/{agent_id}/llm-usage/calculate":{"post":{"operationId":"get_agent_llm_expected_cost_calculation","summary":"Calculate Expected Llm Usage For An Agent","description":"Calculates expected number of LLM tokens needed for the specified agent.","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMUsageCalculatorRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","agents","llm_usage"],"x-fern-sdk-method-name":"calculate","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/duplicate":{"post":{"operationId":"duplicate_agent_route","summary":"Duplicate Agent","description":"Create a new agent by duplicating an existing one","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Duplicate_Agent_v1_convai_agents__agent_id__duplicate_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"duplicate","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/simulate-conversation":{"post":{"operationId":"run_conversation_simulation_route","summary":"Simulates A Conversation","description":"Deprecated. 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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Simulates_a_conversation_v1_convai_agents__agent_id__simulate_conversation_post"}}}},"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,"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"simulate_conversation","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/simulate-conversation/stream":{"post":{"operationId":"run_conversation_simulation_route_stream","summary":"Simulates A Conversation (Stream)","description":"Deprecated. 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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Simulates_a_conversation__Stream__v1_convai_agents__agent_id__simulate_conversation_stream_post"}}}},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"simulate_conversation_stream","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/create":{"post":{"operationId":"create_agent_response_test_route","summary":"Create Agent Response Test","description":"Creates a new agent response test.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Create Chat Response Test Request Information","anyOf":[{"$ref":"#/components/schemas/CreateResponseUnitTestRequest"},{"$ref":"#/components/schemas/CreateToolCallUnitTestRequest"},{"$ref":"#/components/schemas/CreateSimulationTestRequest"}],"title":"Test Request"}}}},"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"}}}}},"x-fern-sdk-group-name":["agents","tests"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/folders":{"post":{"operationId":"create_agent_test_folder_route","summary":"Create Agent Test Folder","description":"Creates a folder for organizing agent tests.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_agent_test_folder_v1_convai_agent_testing_folders_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tests","folders"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/folders/{folder_id}":{"get":{"operationId":"get_agent_test_folder_route","summary":"Get Agent Test Folder By Id","description":"Gets an agent test folder by ID, including its folder path.","parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"description":"The folder ID.","type":"string","examples":["tfld_7301khxdkycse5f88fzjdtrterzm"],"title":"Folder Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tests","folders"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_agent_test_folder_route","summary":"Update Agent Test Folder","description":"Updates an agent test folder. Currently only supports updating the folder name.","parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"description":"The folder ID.","type":"string","examples":["tfld_7301khxdkycse5f88fzjdtrterzm"],"title":"Folder Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_agent_test_folder_v1_convai_agent_testing_folders__folder_id__patch"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tests","folders"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_agent_test_folder_route","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.","parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"description":"The folder ID.","type":"string","examples":["tfld_7301khxdkycse5f88fzjdtrterzm"],"title":"Folder Id"}},{"name":"force","in":"query","description":"Force delete. Required for deleting non-empty folders.","required":false,"schema":{"description":"Force delete. Required for deleting non-empty folders.","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Folder successfully deleted"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tests","folders"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/bulk-move":{"post":{"operationId":"agent_testing_bulk_move_route","summary":"Bulk Move Tests To Folder","description":"Moves multiple tests or folders from one folder to another.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bulk_move_tests_to_folder_v1_convai_agent_testing_bulk_move_post"}}}},"responses":{"200":{"description":"Tests or folders successfully moved to another folder","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tests"],"x-fern-sdk-method-name":"move","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/{test_id}":{"get":{"operationId":"get_agent_response_test_route","summary":"Get Agent Response Test By Id","description":"Gets an agent response test by ID.","parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"description":"The id of a chat response test. This is returned on test creation.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Test Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"llm":"#/components/schemas/GetResponseUnitTestResponseModel","tool":"#/components/schemas/GetToolCallUnitTestResponseModel","simulation":"#/components/schemas/GetSimulationTestResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetResponseUnitTestResponseModel"},{"$ref":"#/components/schemas/GetToolCallUnitTestResponseModel"},{"$ref":"#/components/schemas/GetSimulationTestResponseModel"}],"title":"Response Get Agent Response Test By Id V1 Convai Agent Testing Test Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["agents","tests"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"put":{"operationId":"update_agent_response_test_route","summary":"Update Agent Response Test","description":"Updates an agent response test by ID.","parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"description":"The id of a chat response test. This is returned on test creation.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Test Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Agent test to update","anyOf":[{"$ref":"#/components/schemas/UpdateResponseUnitTestRequest"},{"$ref":"#/components/schemas/UpdateToolCallUnitTestRequest"},{"$ref":"#/components/schemas/UpdateSimulationTestRequest"}],"title":"Test Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"llm":"#/components/schemas/GetResponseUnitTestResponseModel","tool":"#/components/schemas/GetToolCallUnitTestResponseModel","simulation":"#/components/schemas/GetSimulationTestResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetResponseUnitTestResponseModel"},{"$ref":"#/components/schemas/GetToolCallUnitTestResponseModel"},{"$ref":"#/components/schemas/GetSimulationTestResponseModel"}],"title":"Response Update Agent Response Test V1 Convai Agent Testing Test Id Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["agents","tests"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_chat_response_test_route","summary":"Delete Agent Response Test","description":"Deletes an agent response test by ID.","parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"description":"The id of a chat response test. This is returned on test creation.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Test Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["agents","tests"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing/summaries":{"post":{"operationId":"get_agent_response_tests_summaries_route","summary":"Get Agent Response Test Summaries By Ids","description":"Gets agent response test summaries for the requested test IDs.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTestsByIdsRequestModel"}}}},"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"}}}}},"x-fern-sdk-group-name":["agents","tests"],"x-fern-sdk-method-name":"summaries","x-fern-audiences":["convai"]}},"/v1/convai/agent-testing":{"get":{"operationId":"list_chat_response_tests_route","summary":"List Agent Response Tests","description":"Lists all agent response tests with pagination support and optional search filtering.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"search","in":"query","description":"Search query to filter tests by name.","required":false,"schema":{"description":"Search query to filter tests by name.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"parent_folder_id","in":"query","description":"Filter by parent folder ID. Use 'root' to get items in the root folder.","required":false,"schema":{"description":"Filter by parent folder ID. Use 'root' to get items in the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},{"name":"types","in":"query","description":"If present, the endpoint will return only tests/folders of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only tests/folders of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/TestType"}},{"type":"null"}],"title":"Types"}},{"name":"include_folders","in":"query","description":"Deprecated. Use the `types` query param and include `folder` instead.","required":false,"schema":{"description":"Deprecated. Use the `types` query param and include `folder` instead.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Include Folders"},"deprecated":true},{"name":"sort_mode","in":"query","description":"Sort mode for listing tests. Use 'folders_first' to place folders before tests.","required":false,"schema":{"description":"Sort mode for listing tests. Use 'folders_first' to place folders before tests.","type":"string","default":"default","enum":["default","folders_first"],"title":"Sort Mode"}},{"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":{"description":"Filter test visibility. Use `shared_with_me` to return only tests/folders shared with the current user that they did not create.","default":"all","$ref":"#/components/schemas/TestSharingMode"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"x-fern-sdk-group-name":["agents","tests"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/test-invocations":{"get":{"operationId":"list_test_invocations_route","summary":"List Test Invocations","description":"Lists all test invocations with pagination support and optional search filtering.","parameters":[{"name":"agent_id","in":"query","description":"Filter by agent ID","required":false,"schema":{"description":"Filter by agent ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"page_size","in":"query","description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"x-fern-sdk-group-name":["agents","tests","invocations"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/run-tests":{"post":{"operationId":"run_agent_test_suite_route","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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentTestsRequestModel"}}}},"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"}}}}},"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"run_tests","x-fern-audiences":["convai"]}},"/v1/convai/test-invocations/{test_invocation_id}":{"get":{"operationId":"get_test_invocation_route","summary":"Get Test Invocation","description":"Gets a test invocation by ID.","parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"description":"The id of a test invocation. This is returned when tests are run.","type":"string","embed":true,"title":"Test Invocation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"x-fern-sdk-group-name":["agents","tests","invocations"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/test-invocations/{test_invocation_id}/resubmit":{"post":{"operationId":"resubmit_tests_route","summary":"Resubmit Tests","description":"Resubmits specific test runs from a test invocation.","parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"description":"The id of a test invocation. This is returned when tests are run.","type":"string","embed":true,"title":"Test Invocation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResubmitTestsRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-fern-sdk-group-name":["agents","tests","invocations"],"x-fern-sdk-method-name":"resubmit","x-fern-audiences":["convai"]}},"/v1/convai/conversations":{"get":{"operationId":"get_conversation_histories_route","summary":"List conversations","description":"Get all conversations of agents that user owns. With option to restrict to a specific agent.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"visited_agent_ids","in":"query","description":"Filter conversations where any of these agents participated. Can not exceed 50 values.","required":false,"schema":{"description":"Filter conversations where any of these agents participated. Can not exceed 50 values.","anyOf":[{"type":"array","items":{"type":"string"},"maxItems":50},{"type":"null"}],"title":"Visited Agent Ids"}},{"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":{"description":"Filter conversations where any of these agent branches participated. Can not exceed 50 values.","anyOf":[{"type":"array","items":{"type":"string"},"maxItems":50},{"type":"null"}],"title":"Visited Agent Branch Ids"}},{"name":"call_successful","in":"query","description":"The result of the success evaluation","required":false,"schema":{"description":"The result of the success evaluation","anyOf":[{"$ref":"#/components/schemas/EvaluationSuccessResult"},{"type":"null"}],"examples":["success"],"title":"Call Successful"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations up to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start Before Unix"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations after to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start After Unix"}},{"name":"call_duration_min_secs","in":"query","description":"Minimum call duration in seconds.","required":false,"schema":{"description":"Minimum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Min Secs"}},{"name":"call_duration_max_secs","in":"query","description":"Maximum call duration in seconds.","required":false,"schema":{"description":"Maximum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Max Secs"}},{"name":"rating_max","in":"query","description":"Maximum overall rating (1-5).","required":false,"schema":{"description":"Maximum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Max"}},{"name":"rating_min","in":"query","description":"Minimum overall rating (1-5).","required":false,"schema":{"description":"Minimum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Min"}},{"name":"has_feedback_comment","in":"query","description":"Filter conversations with user feedback comments.","required":false,"schema":{"description":"Filter conversations with user feedback comments.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Feedback Comment"}},{"name":"user_id","in":"query","description":"Filter conversations by the user ID who initiated them.","required":false,"schema":{"description":"Filter conversations by the user ID who initiated them.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"evaluation_params","in":"query","description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","required":false,"schema":{"description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Evaluation Params"}},{"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|exists|missing. For in, pipe-delimit values.","required":false,"schema":{"description":"Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Data Collection Params"}},{"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":{"description":"Data collection field IDs to include in each conversation summary. Repeat param. When omitted, data_collection_results is not returned.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Data Collection Ids"}},{"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":{"description":"Evaluation criteria IDs to include in each conversation summary. Repeat param. When omitted, evaluation_criteria_results is not returned.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Evaluation Criteria Ids"}},{"name":"tool_names","in":"query","description":"Filter conversations by tool names used during the call.","required":false,"schema":{"description":"Filter conversations by tool names used during the call.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names"}},{"name":"tool_names_successful","in":"query","description":"Filter conversations by tool names that had successful calls.","required":false,"schema":{"description":"Filter conversations by tool names that had successful calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Successful"}},{"name":"tool_names_errored","in":"query","description":"Filter conversations by tool names that had errored calls.","required":false,"schema":{"description":"Filter conversations by tool names that had errored calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Errored"}},{"name":"main_languages","in":"query","description":"Filter conversations by detected main language (language code).","required":false,"schema":{"description":"Filter conversations by detected main language (language code).","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Main Languages"}},{"name":"page_size","in":"query","description":"How many conversations to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many conversations to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"summary_mode","in":"query","description":"Whether to include transcript summaries in the response.","required":false,"schema":{"description":"Whether to include transcript summaries in the response.","type":"string","default":"exclude","enum":["exclude","include"],"title":"Summary Mode"}},{"name":"search","in":"query","description":"Full-text or fuzzy search over transcript messages","required":false,"schema":{"description":"Full-text or fuzzy search over transcript messages","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Search"},"deprecated":true},{"name":"conversation_initiation_source","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}],"title":"Conversation Initiation Source"}},{"name":"text_only","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only"}},{"name":"conversation_product_type","in":"query","description":"Restrict results to a single conversation product surface.","required":false,"schema":{"description":"Restrict results to a single conversation product surface.","anyOf":[{"$ref":"#/components/schemas/ConversationProduct"},{"type":"null"}],"title":"Conversation Product Type"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"description":"Filter conversations by branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"topic_ids","in":"query","description":"Filter conversations by topic IDs assigned during topic discovery.","required":false,"schema":{"description":"Filter conversations by topic IDs assigned during topic discovery.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Topic Ids"}},{"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":{"description":"Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views.","anyOf":[{"type":"array","items":{"enum":["initiated","in-progress","processing","done","failed"],"type":"string"}},{"type":"null"}],"title":"Exclude Statuses"}},{"name":"tag_ids","in":"query","description":"Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints.","required":false,"schema":{"description":"Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tag Ids"}},{"name":"workflow_node_entered_id","in":"query","description":"Filter conversations to only those that entered the given node.","required":false,"schema":{"description":"Filter conversations to only those that entered the given node.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Entered Id"}},{"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":{"description":"Filter conversations by their stored termination_reason (metadata.termination_reason). Repeat param to match any of several.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Termination Reasons"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/users":{"get":{"operationId":"get_conversation_users_route","summary":"Get Conversation Users","description":"Get distinct users from conversations with pagination.","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"description":"Filter conversations by branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations up to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start Before Unix"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations after to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start After Unix"}},{"name":"search","in":"query","description":"Search/filter by user ID (exact match).","required":false,"schema":{"description":"Search/filter by user ID (exact match).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"page_size","in":"query","description":"How many users to return at maximum. Defaults to 30.","required":false,"schema":{"description":"How many users to return at maximum. Defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"sort_by","in":"query","description":"The field to sort the results by. Defaults to last_contact_unix_secs.","required":false,"schema":{"description":"The field to sort the results by. Defaults to last_contact_unix_secs.","default":"last_contact_unix_secs","$ref":"#/components/schemas/UsersSortBy"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","users"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/conversations/resolve":{"get":{"operationId":"resolve_conversation_reference_route","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.","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":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","type":"string","examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"reference","in":"query","description":"A Slack message URL or a Zendesk ticket URL.","required":true,"schema":{"description":"A Slack message URL or a Zendesk ticket URL.","type":"string","examples":["https://your-domain.zendesk.com/agent/tickets/12345","https://your-team.slack.com/archives/C0123ABCD/p1700000000123456"],"title":"Reference"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations"],"x-fern-sdk-method-name":"resolve","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}":{"get":{"operationId":"get_conversation_history_route","summary":"Get Conversation Details","description":"Get the details of a particular conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"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":{"description":"Response format. Defaults to 'json'. Set to 'opentelemetry' for an OTLP-compatible trace payload using the same structure as the post-call webhook.","type":"string","default":"json","enum":["json","opentelemetry"],"title":"Format"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_conversation_route","summary":"Delete Conversation","description":"Delete a particular conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/sip-messages":{"get":{"operationId":"get_conversation_sip_messages","summary":"Get Sip Messages For A Conversation","description":"Get SIP messages associated with a conversation's phone call","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":20,"maximum":20,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations"],"x-fern-sdk-method-name":"get_sip_messages","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/audio":{"get":{"operationId":"get_conversation_audio_route","summary":"Get Conversation Audio","description":"Get the audio recording of a particular conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"audio/mpeg":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","audio"],"x-fern-sdk-method-name":"get","x-fern-streaming":true,"x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/feedback":{"post":{"operationId":"post_conversation_feedback_route","summary":"Send Conversation Feedback","description":"Send the feedback for the given conversation","parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"description":"The id of the conversation you're taking the action on.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Conversation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationFeedbackRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","feedback"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/conversations/messages/text-search":{"get":{"operationId":"text_search_conversation_messages_route","summary":"Text Search Conversation Messages","description":"Search through conversation transcript messages by full-text and fuzzy search","parameters":[{"name":"text_query","in":"query","description":"The search query text for full-text and fuzzy matching","required":true,"schema":{"description":"The search query text for full-text and fuzzy matching","type":"string","title":"Text Query"},"examples":{"default":{"summary":"Keyword-style query","value":"refund policy"}}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"visited_agent_ids","in":"query","description":"Filter conversations where any of these agents participated. Can not exceed 50 values.","required":false,"schema":{"description":"Filter conversations where any of these agents participated. Can not exceed 50 values.","anyOf":[{"type":"array","items":{"type":"string"},"maxItems":50},{"type":"null"}],"title":"Visited Agent Ids"}},{"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":{"description":"Filter conversations where any of these agent branches participated. Can not exceed 50 values.","anyOf":[{"type":"array","items":{"type":"string"},"maxItems":50},{"type":"null"}],"title":"Visited Agent Branch Ids"}},{"name":"call_successful","in":"query","description":"The result of the success evaluation","required":false,"schema":{"description":"The result of the success evaluation","anyOf":[{"$ref":"#/components/schemas/EvaluationSuccessResult"},{"type":"null"}],"examples":["success"],"title":"Call Successful"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations up to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start Before Unix"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"description":"Unix timestamp (in seconds) to filter conversations after to this start date.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Start After Unix"}},{"name":"call_duration_min_secs","in":"query","description":"Minimum call duration in seconds.","required":false,"schema":{"description":"Minimum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Min Secs"}},{"name":"call_duration_max_secs","in":"query","description":"Maximum call duration in seconds.","required":false,"schema":{"description":"Maximum call duration in seconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Max Secs"}},{"name":"rating_max","in":"query","description":"Maximum overall rating (1-5).","required":false,"schema":{"description":"Maximum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Max"}},{"name":"rating_min","in":"query","description":"Minimum overall rating (1-5).","required":false,"schema":{"description":"Minimum overall rating (1-5).","anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"title":"Rating Min"}},{"name":"has_feedback_comment","in":"query","description":"Filter conversations with user feedback comments.","required":false,"schema":{"description":"Filter conversations with user feedback comments.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Feedback Comment"}},{"name":"user_id","in":"query","description":"Filter conversations by the user ID who initiated them.","required":false,"schema":{"description":"Filter conversations by the user ID who initiated them.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"evaluation_params","in":"query","description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","required":false,"schema":{"description":"Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Evaluation Params"}},{"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|exists|missing. For in, pipe-delimit values.","required":false,"schema":{"description":"Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Data Collection Params"}},{"name":"tool_names","in":"query","description":"Filter conversations by tool names used during the call.","required":false,"schema":{"description":"Filter conversations by tool names used during the call.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names"}},{"name":"tool_names_successful","in":"query","description":"Filter conversations by tool names that had successful calls.","required":false,"schema":{"description":"Filter conversations by tool names that had successful calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Successful"}},{"name":"tool_names_errored","in":"query","description":"Filter conversations by tool names that had errored calls.","required":false,"schema":{"description":"Filter conversations by tool names that had errored calls.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tool Names Errored"}},{"name":"main_languages","in":"query","description":"Filter conversations by detected main language (language code).","required":false,"schema":{"description":"Filter conversations by detected main language (language code).","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Main Languages"}},{"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":{"description":"Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views.","anyOf":[{"type":"array","items":{"enum":["initiated","in-progress","processing","done","failed"],"type":"string"}},{"type":"null"}],"title":"Exclude Statuses"}},{"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":{"description":"Filter conversations by their stored termination_reason (metadata.termination_reason). Repeat param to match any of several.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Termination Reasons"}},{"name":"page_size","in":"query","description":"Number of results per page. Max 50.","required":false,"schema":{"description":"Number of results per page. Max 50.","type":"integer","default":20,"maximum":50,"minimum":1,"title":"Page Size"}},{"name":"summary_mode","in":"query","description":"Whether to include transcript summaries in the response.","required":false,"schema":{"description":"Whether to include transcript summaries in the response.","type":"string","default":"exclude","enum":["exclude","include"],"title":"Summary Mode"}},{"name":"conversation_initiation_source","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}],"title":"Conversation Initiation Source"}},{"name":"text_only","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only"}},{"name":"conversation_product_type","in":"query","description":"Restrict results to a single conversation product surface.","required":false,"schema":{"description":"Restrict results to a single conversation product surface.","anyOf":[{"$ref":"#/components/schemas/ConversationProduct"},{"type":"null"}],"title":"Conversation Product Type"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"description":"Filter conversations by branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"topic_ids","in":"query","description":"Filter conversations by topic IDs assigned during topic discovery.","required":false,"schema":{"description":"Filter conversations by topic IDs assigned during topic discovery.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Topic Ids"}},{"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":{"description":"Sort order for search results. 'search_score' sorts by search score, 'created_at' sorts by conversation start time.","default":"search_score","$ref":"#/components/schemas/MessageSearchSortBy"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","messages"],"x-fern-sdk-method-name":"text_search","x-fern-audiences":["convai"]}},"/v1/convai/conversations/messages/smart-search":{"get":{"operationId":"smart_search_conversation_messages_route","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","parameters":[{"name":"text_query","in":"query","description":"The search query text for semantic similarity matching","required":true,"schema":{"description":"The search query text for semantic similarity matching","type":"string","title":"Text Query"},"examples":{"default":{"summary":"Intent-style query","value":"Customer asking to cancel and get money back"}}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz","seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"page_size","in":"query","description":"Number of results per page. Max 50.","required":false,"schema":{"description":"Number of results per page. Max 50.","type":"integer","default":20,"maximum":50,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","messages"],"x-fern-sdk-method-name":"search","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/tags":{"post":{"operationId":"assign_conversation_tags_route","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.","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tag ids to assign to the conversation.","$ref":"#/components/schemas/AssignConversationTagsRequestModel"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","tags"],"x-fern-sdk-method-name":"assign","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/tags/{tag_id}":{"delete":{"operationId":"unassign_conversation_tag_route","summary":"Unassign Conversation Tag","description":"Remove a single conversation tag from a conversation.","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","tags"],"x-fern-sdk-method-name":"unassign","x-fern-audiences":["convai"]}},"/v1/convai/tags":{"get":{"operationId":"list_conversation_tags_route","summary":"List Conversation Tags","description":"List conversation tags for the workspace, ordered by most recently created first.","parameters":[{"name":"page_size","in":"query","description":"How many conversation tags to return. Can not exceed 100.","required":false,"schema":{"description":"How many conversation tags to return. Can not exceed 100.","type":"integer","default":100,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","tags"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]},"post":{"operationId":"create_conversation_tag_route","summary":"Create Conversation Tag","description":"Create a new conversation tag for the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Conversation tag to create.","$ref":"#/components/schemas/CreateConversationTagRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","tags"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/tags/{tag_id}":{"get":{"operationId":"get_conversation_tag_route","summary":"Get Conversation Tag","description":"Get a conversation tag by ID.","parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","tags"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_conversation_tag_route","summary":"Update Conversation Tag","description":"Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin.","parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Fields to update. Omit a field to leave it unchanged.","$ref":"#/components/schemas/PatchConversationTagRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","tags"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_conversation_tag_route","summary":"Delete Conversation Tag","description":"Delete a conversation tag. Restricted to the tag owner or a workspace admin.","parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","tags"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/phone-numbers":{"post":{"operationId":"create_phone_number_route","summary":"Import Phone Number","description":"Import Phone Number from provider configuration (Twilio, Exotel, or SIP trunk)","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Create Phone Request Information","anyOf":[{"$ref":"#/components/schemas/CreateTwilioPhoneNumberRequest"},{"$ref":"#/components/schemas/CreateExotelPhoneNumberRequest"},{"$ref":"#/components/schemas/CreateSIPTrunkPhoneNumberRequestV2"}],"title":"Phone Request"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","phone_numbers"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"list_phone_numbers_route","summary":"List Phone Numbers","description":"Retrieve all Phone Numbers","parameters":[{"name":"provider","in":"query","description":"Filter by telephony provider","required":false,"schema":{"description":"Filter by telephony provider","anyOf":[{"$ref":"#/components/schemas/TelephonyProvider"},{"type":"null"}],"title":"Provider"}},{"name":"agent_id","in":"query","description":"Filter by assigned agent ID","required":false,"schema":{"description":"Filter by assigned agent ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"Filter by assigned branch ID","required":false,"schema":{"description":"Filter by assigned branch ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"discriminator":{"propertyName":"provider","mapping":{"twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel","exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}}},"title":"Response List Phone Numbers V1 Convai Phone Numbers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","phone_numbers"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/phone-numbers/{phone_number_id}":{"get":{"operationId":"get_phone_number_route","summary":"Get Phone Number","description":"Retrieve Phone Number details by ID","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"provider","mapping":{"twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel","exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"title":"Response Get Phone Number V1 Convai Phone Numbers Phone Number Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","phone_numbers"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_phone_number_route","summary":"Delete Phone Number","description":"Delete Phone Number by ID","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","phone_numbers"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]},"patch":{"operationId":"update_phone_number_route","summary":"Update Phone Number","description":"Update assigned agent of a phone number","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Patch Phone Request Information","$ref":"#/components/schemas/UpdatePhoneNumberRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"provider","mapping":{"twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel","exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"title":"Response Update Phone Number V1 Convai Phone Numbers Phone Number Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","phone_numbers"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/phone-numbers/{phone_number_id}/sip-messages":{"get":{"operationId":"list_sip_messages","summary":"Get Sip Messages For A Phone Number","description":"Get SIP messages for a phone number","parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"description":"The phone number ID. This is returned when a phone number is imported.","type":"string","embed":true,"examples":["TeaqRRdTcIfIu2i7BYfT"],"title":"Phone Number Id"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":20,"maximum":20,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","phone_numbers"],"x-fern-sdk-method-name":"get_sip_messages","x-fern-audiences":["convai"]}},"/v1/convai/llm-usage/calculate":{"post":{"operationId":"get_public_llm_expected_cost_calculation","summary":"Calculate Expected Llm Usage","description":"Returns a list of LLM models and the expected cost for using them based on the provided values.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMUsageCalculatorPublicRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","llm_usage"],"x-fern-sdk-method-name":"calculate","x-fern-audiences":["convai"]}},"/v1/convai/llm/list":{"get":{"operationId":"list_available_llms","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.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMListResponseModel-Input"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","llm"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/files":{"post":{"operationId":"upload_file_route","summary":"Upload File","description":"Upload an image or PDF file for a conversation. Returns a unique file ID that can be used to reference the file in the conversation.","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Upload_file_v1_convai_conversations__conversation_id__files_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","files"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/files/{file_id}":{"delete":{"operationId":"cancel_file_upload_route","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.","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","files"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/analytics/live-count":{"get":{"operationId":"get_live_count","summary":"Get Live Count","description":"Get the live count of the ongoing conversations.","parameters":[{"name":"agent_id","in":"query","description":"The id of an agent to restrict the analytics to.","required":false,"schema":{"description":"The id of an agent to restrict the analytics to.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","analytics","live_count"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/summaries":{"get":{"operationId":"get_agent_knowledge_base_summaries_route","summary":"Get Knowledge Base Summaries By Ids","description":"Gets multiple knowledge base document summaries by their IDs.","parameters":[{"name":"document_ids","in":"query","description":"The ids of knowledge base documents.","required":true,"schema":{"description":"The ids of knowledge base documents.","type":"array","items":{"type":"string"},"examples":[["21m00Tcm4TlvDq8ikWAM","31n11Udm5UmwEr9jkXBN"]],"maxItems":100,"minItems":1,"title":"Document Ids"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/KnowledgeBaseSummaryBatchSuccessfulResponseModel"},{"$ref":"#/components/schemas/BatchFailureResponseModel"}],"discriminator":{"propertyName":"status","mapping":{"success":"#/components/schemas/KnowledgeBaseSummaryBatchSuccessfulResponseModel","failure":"#/components/schemas/BatchFailureResponseModel"}}},"title":"Response Get Knowledge Base Summaries By Ids V1 Convai Knowledge Base Summaries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents","summaries"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base":{"post":{"operationId":"add_documentation_to_knowledge_base","summary":"Add To Knowledge Base","description":"Upload a file or webpage URL to create a knowledge base document.
After creating the document, update the agent's knowledge base by calling [Update agent](/docs/api-reference/agents/update). ","parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_to_knowledge_base_v1_convai_knowledge_base_post"}}}},"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"}}}}},"deprecated":true,"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"add_to_knowledge_base"},"get":{"operationId":"get_knowledge_base_list_route","summary":"Get Knowledge Base List","description":"Get a list of available knowledge base documents","parameters":[{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"search","in":"query","description":"If specified, the endpoint returns only such knowledge base documents whose names start with this string.","required":false,"schema":{"description":"If specified, the endpoint returns only such knowledge base documents whose names start with this string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"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":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Show Only Owned Documents"},"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":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"}},{"name":"types","in":"query","description":"If present, the endpoint will return only documents of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only documents of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseDocumentType"}},{"type":"null"}],"title":"Types"}},{"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":{"description":"If set, the endpoint will return only documents that are direct children of the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},{"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":{"description":"If set, the endpoint will return only documents that are descendants of the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Ancestor Folder Id"}},{"name":"folders_first","in":"query","description":"Whether folders should be returned first in the list of documents.","required":false,"schema":{"description":"Whether folders should be returned first in the list of documents.","type":"boolean","default":false,"title":"Folders First"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/KnowledgeBaseSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/url":{"post":{"operationId":"create_url_document_route","summary":"Create Url Document","description":"Create a knowledge base document generated by scraping the given webpage.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_URL_document_v1_convai_knowledge_base_url_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"create_from_url","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/crawl":{"post":{"operationId":"create_crawl_job_route","summary":"Create Crawl Job","description":"Create a crawl job to crawl the given URL with specified depth and page limits.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_crawl_job_v1_convai_knowledge_base_crawl_post"}}}},"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"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["agents","knowledge_base","crawl_jobs"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"list_crawl_jobs_route","summary":"List Ongoing And Recent Crawl Jobs Created By A User","description":"Get a list of ongoing and recent crawl jobs for the user.","parameters":[{"name":"include_job_ids","in":"query","description":"Ids of additional crawl jobs to retrieve","required":false,"schema":{"description":"Ids of additional crawl jobs to retrieve","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Include Job Ids"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["agents","knowledge_base","crawl_jobs"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/crawl/{crawl_job_id}":{"get":{"operationId":"get_crawl_job_route","summary":"Get Crawl Job Details","description":"Get details about a specific crawl job including status and progress.","parameters":[{"name":"crawl_job_id","in":"path","description":"The id of the crawl job to retrieve","required":true,"schema":{"description":"The id of the crawl job to retrieve","type":"string","embed":true,"title":"Crawl Job Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["agents","knowledge_base","crawl_jobs"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/crawl/{crawl_job_id}/cancel":{"post":{"operationId":"cancel_crawl_job_route","summary":"Cancel Crawl Job","description":"Cancel a crawl job and delete all associated documents and folders.","parameters":[{"name":"crawl_job_id","in":"path","description":"The id of the crawl job to retrieve","required":true,"schema":{"description":"The id of the crawl job to retrieve","type":"string","embed":true,"title":"Crawl Job Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["agents","knowledge_base","crawl_jobs"],"x-fern-sdk-method-name":"cancel","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/file":{"post":{"operationId":"create_file_document_route","summary":"Create File Document","description":"Create a knowledge base document generated form the uploaded file.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_file_document_v1_convai_knowledge_base_file_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"create_from_file","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/text":{"post":{"operationId":"create_text_document_route","summary":"Create Text Document","description":"Create a knowledge base document containing the provided text.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_text_document_v1_convai_knowledge_base_text_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"create_from_text","x-fern-audiences":["convai"]},"section":"Legacy"},"/v1/convai/knowledge-base/folder":{"post":{"operationId":"create_folder_route","summary":"Create Folder","description":"Create a folder used for grouping documents together.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_folder_v1_convai_knowledge_base_folder_post"}}}},"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"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"create_folder","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}":{"patch":{"operationId":"update_document_route","summary":"Update Document","description":"Update the name and/or content of a 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_document_v1_convai_knowledge_base__documentation_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Update Document V1 Convai Knowledge Base Documentation Id Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"get":{"operationId":"get_documentation_from_knowledge_base","summary":"Get Documentation From Knowledge Base","description":"Get details about a specific documentation making up the agent's knowledge base","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"agent_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Get Documentation From Knowledge Base V1 Convai Knowledge Base Documentation Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_knowledge_base_document","summary":"Delete Knowledge Base Document Or Folder","description":"Delete a document or folder from the knowledge base.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"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":{"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.","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/update-file":{"patch":{"operationId":"update_file_document_route","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.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Update_file_document_v1_convai_knowledge_base__documentation_id__update_file_patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Update File Document V1 Convai Knowledge Base Documentation Id Update File Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","document"],"x-fern-sdk-method-name":"update_file","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/rag-index":{"post":{"operationId":"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.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Compute_RAG_indexes_in_batch_v1_convai_knowledge_base_rag_index_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/RAGIndexBatchSuccessfulResponseModel"},{"$ref":"#/components/schemas/BatchFailureResponseModel"}],"discriminator":{"propertyName":"status","mapping":{"success":"#/components/schemas/RAGIndexBatchSuccessfulResponseModel","failure":"#/components/schemas/BatchFailureResponseModel"}}},"title":"Response Compute Rag Indexes In Batch V1 Convai Knowledge Base Rag Index Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base"],"x-fern-sdk-method-name":"get_or_create_rag_indexes","x-fern-audiences":["convai"]},"get":{"operationId":"get_rag_index_overview","summary":"Get Rag Index Overview.","description":"Provides total size and other information of RAG indexes used by knowledgebase documents","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"rag_index_overview","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/refresh":{"post":{"operationId":"refresh_url_document_route","summary":"Refresh Url Document Content","description":"Manually refresh a URL document by re-fetching its content from the source URL.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/GetKnowledgeBaseURLResponseModel","file":"#/components/schemas/GetKnowledgeBaseFileResponseModel","text":"#/components/schemas/GetKnowledgeBaseTextResponseModel","folder":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseFolderResponseModel"}],"title":"Response Refresh Url Document Content V1 Convai Knowledge Base Documentation Id Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","document"],"x-fern-sdk-method-name":"refresh","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/rag-index":{"post":{"operationId":"rag_index_status","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.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Payload for RAG index status endpoint.","$ref":"#/components/schemas/RAGIndexRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","document"],"x-fern-sdk-method-name":"compute_rag_index","x-fern-audiences":["convai"]},"get":{"operationId":"get_rag_indexes","summary":"Get Rag Indexes Of The Specified Knowledgebase Document.","description":"Provides information about all RAG indexes of the specified knowledgebase 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"get_document_rag_indexes","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/rag-index/{rag_index_id}":{"delete":{"operationId":"delete_rag_index","summary":"Delete Rag Index.","description":"Delete RAG index for the knowledgebase 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"rag_index_id","in":"path","description":"The id of RAG index of document from the knowledge base.","required":true,"schema":{"description":"The id of RAG index of document from the knowledge base.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Rag Index Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents"],"x-fern-sdk-method-name":"delete_document_rag_index","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/search":{"get":{"operationId":"search_knowledge_base_content_route","summary":"Search Knowledge Base Content","description":"Fuzzy text search over knowledge base document content","parameters":[{"name":"query","in":"query","description":"The search query text","required":true,"schema":{"description":"The search query text","type":"string","title":"Query"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"types","in":"query","description":"If present, the endpoint will return only documents of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only documents of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseDocumentType"}},{"type":"null"}],"title":"Types"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base"],"x-fern-sdk-method-name":"search","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/dependent-agents":{"get":{"operationId":"get_knowledge_base_dependent_agents","summary":"Get Dependent Agents List","description":"Get a list of agents depending on this knowledge base 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"dependent_type","in":"query","description":"Type of dependent agents to return.","required":false,"schema":{"description":"Type of dependent agents to return.","default":"all","$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":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"get_agents","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/dependent-agents":{"post":{"operationId":"get_knowledge_base_bulk_dependent_agents_route","summary":"Get Dependent Agents For Multiple Documents","description":"Get a list of agents depending on any of the given knowledge base documents.","parameters":[{"name":"dependent_type","in":"query","description":"Type of dependent agents to return.","required":false,"schema":{"description":"Type of dependent agents to return.","default":"all","$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":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Get_dependent_agents_for_multiple_documents_v1_convai_knowledge_base_dependent_agents_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"get_bulk_agents","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/content":{"get":{"operationId":"get_knowledge_base_content","summary":"Get Document Content","description":"Get the entire content of a document from the knowledge base","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Streaming document content","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"get_content","x-fern-sdk-streaming":true,"x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/source-file-url":{"get":{"operationId":"get_knowledge_base_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","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"get_source_file_url","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/chunk/{chunk_id}":{"get":{"operationId":"get_documentation_chunk_from_knowledge_base","summary":"Get Documentation Chunk From Knowledge Base","description":"Get details about a specific documentation part used by RAG.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"chunk_id","in":"path","description":"The id of a document RAG chunk from the knowledge base.","required":true,"schema":{"description":"The id of a document RAG chunk from the knowledge base.","type":"string","embed":true,"examples":[1],"title":"Chunk Id"}},{"name":"embedding_model","in":"query","description":"The embedding model used to retrieve the chunk.","required":false,"schema":{"description":"The embedding model used to retrieve the chunk.","anyOf":[{"$ref":"#/components/schemas/EmbeddingModelEnum"},{"type":"null"}],"examples":["e5_mistral_7b_instruct","multilingual_e5_large_instruct"],"title":"Embedding Model"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents","chunk"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{documentation_id}/chunks":{"get":{"operationId":"get_documentation_chunks_from_knowledge_base","summary":"Get All Rag Chunks For A Document","description":"Get all RAG chunks for a specific knowledge base 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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Documentation Id"}},{"name":"embedding_model","in":"query","description":"The embedding model used to retrieve the chunk.","required":true,"schema":{"description":"The embedding model used to retrieve the chunk.","$ref":"#/components/schemas/EmbeddingModelEnum","examples":["e5_mistral_7b_instruct","multilingual_e5_large_instruct"]}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents","chunks"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/{document_id}/move":{"post":{"operationId":"post_knowledge_base_move_route","summary":"Move Entity To Folder","description":"Moves the entity from one folder to another.","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":{"description":"The id of a document from the knowledge base. This is returned on document addition.","type":"string","embed":true,"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Document Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Move_entity_to_folder_v1_convai_knowledge_base__document_id__move_post"}}}},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"move","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/bulk-move":{"post":{"operationId":"post_knowledge_base_bulk_move_route","summary":"Bulk Move Entities To Folder","description":"Moves multiple entities from one folder to another.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bulk_move_entities_to_folder_v1_convai_knowledge_base_bulk_move_post"}}}},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Conversational AI"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"bulk_move","x-fern-audiences":["convai"]}},"/v1/convai/knowledge-base/bulk-delete":{"post":{"operationId":"post_knowledge_base_bulk_delete_route","summary":"Bulk Delete Knowledge Base Documents","description":"Delete multiple documents or folders from the knowledge base. Each id succeeds or fails independently.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bulk_delete_knowledge_base_documents_v1_convai_knowledge_base_bulk_delete_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/KnowledgeBaseBulkDeleteSuccessfulResponseModel"},{"$ref":"#/components/schemas/BatchFailureResponseModel"}],"discriminator":{"propertyName":"status","mapping":{"success":"#/components/schemas/KnowledgeBaseBulkDeleteSuccessfulResponseModel","failure":"#/components/schemas/BatchFailureResponseModel"}}},"title":"Response Bulk Delete Knowledge Base Documents V1 Convai Knowledge Base Bulk Delete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","knowledge_base","documents"],"x-fern-sdk-method-name":"bulk_delete","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/topics":{"get":{"operationId":"get_agent_topics_route","summary":"Get Agent Conversation Topics","description":"Returns the latest topic discovery run results for a given agent.","parameters":[{"name":"agent_id","in":"path","description":"ID of the agent","required":true,"schema":{"description":"ID of the agent","type":"string","title":"Agent Id"}},{"name":"from_unix_secs","in":"query","description":"Start of the window to view topics for. When set with to_unix_secs, per-day topics in the range are aggregated together.","required":false,"schema":{"description":"Start of the window to view topics for. When set with to_unix_secs, per-day topics in the range are aggregated together.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Unix Secs"}},{"name":"to_unix_secs","in":"query","description":"End of the window to view topics for.","required":false,"schema":{"description":"End of the window to view topics for.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Unix Secs"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Insights","Agents Platform"],"x-fern-sdk-group-name":["agents","conversations","topics"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/tools":{"post":{"operationId":"add_tool_route","summary":"Add Tool","description":"Add a new tool to the available tools in the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"A tool that an agent can provide to LLM.","$ref":"#/components/schemas/ToolRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tools"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"get_tools_route","summary":"Get Tools","description":"Get all available tools in the workspace.","parameters":[{"name":"search","in":"query","description":"If specified, the endpoint returns only tools whose names start with this string.","required":false,"schema":{"description":"If specified, the endpoint returns only tools whose names start with this string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Page Size"}},{"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":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Show Only Owned Documents"},"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":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"}},{"name":"types","in":"query","description":"If present, the endpoint will return only tools of the given types.","required":false,"schema":{"description":"If present, the endpoint will return only tools of the given types.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ToolTypeFilter"}},{"type":"null"}],"title":"Types"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/ToolSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tools"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/tools/{tool_id}":{"get":{"operationId":"get_tool_route","summary":"Get Tool","description":"Get tool that is available in the workspace.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tools"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_tool_route","summary":"Update Tool","description":"Update tool that is available in the workspace.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"A tool that an agent can provide to LLM.","$ref":"#/components/schemas/ToolRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tools"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_tool_route","summary":"Delete Tool","description":"Delete tool from the workspace.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"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":{"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.","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tools"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/tools/{tool_id}/dependent-agents":{"get":{"operationId":"get_tool_dependent_agents_route","summary":"Get Dependent Agents List","description":"Get a list of agents depending on this tool","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tools"],"x-fern-sdk-method-name":"get_dependent_agents","x-fern-audiences":["convai"]}},"/v1/convai/tools/{tool_id}/executions":{"get":{"operationId":"get_tool_executions_route","summary":"Get Tool Executions","description":"Get paginated list of tool executions for a specific tool.","parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"description":"ID of the requested tool.","type":"string","title":"Tool Id"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"is_error","in":"query","description":"Filter by error status. If not provided, returns all executions.","required":false,"schema":{"description":"Filter by error status. If not provided, returns all executions.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Error"}},{"name":"agent_id","in":"query","description":"Filter by agent ID.","required":false,"schema":{"description":"Filter by agent ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"Filter by agent branch ID.","required":false,"schema":{"description":"Filter by agent branch ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},{"name":"start_time","in":"query","description":"Filter executions from this Unix timestamp (inclusive).","required":false,"schema":{"description":"Filter executions from this Unix timestamp (inclusive).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Time"}},{"name":"end_time","in":"query","description":"Filter executions until this Unix timestamp (inclusive).","required":false,"schema":{"description":"Filter executions until this Unix timestamp (inclusive).","anyOf":[{"type":"number"},{"type":"null"}],"title":"End Time"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","tools","executions"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/settings":{"get":{"operationId":"get_settings_route","summary":"Get Convai Settings","description":"Retrieve Convai settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","settings"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_settings_route","summary":"Update Convai Settings","description":"Update Convai settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Convai settings to update","$ref":"#/components/schemas/PatchConvAISettingsRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","settings"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/settings/dashboard":{"get":{"operationId":"get_dashboard_settings_route","summary":"Get Convai Dashboard Settings","description":"Retrieve Convai dashboard settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","dashboard","settings"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_dashboard_settings_route","summary":"Update Convai Dashboard Settings","description":"Update Convai dashboard settings for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Convai dashboard settings to update","$ref":"#/components/schemas/PatchConvAIDashboardSettingsRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","dashboard","settings"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/secrets":{"post":{"operationId":"create_secret_route","summary":"Create Convai Workspace Secret","description":"Create a new secret for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Secret to create","$ref":"#/components/schemas/PostWorkspaceSecretRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","secrets"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"get_secrets_route","summary":"Get Convai Workspace Secrets","description":"Get all workspace secrets for the user","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":{"description":"How many documents to return at maximum. Can not exceed 100. If not provided, returns all secrets.","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Page Size"}},{"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":{"description":"Maximum number of dependent resources (tools, agents, phone numbers) to return per secret. Can not exceed 100.","anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Dependency Limit"}},{"name":"search","in":"query","description":"If specified, returns only secrets whose names start with this string.","required":false,"schema":{"description":"If specified, returns only secrets whose names start with this string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","secrets"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/secrets/{secret_id}":{"get":{"operationId":"get_secret_route","summary":"Get Convai Workspace Secret","description":"Get a workspace secret by ID","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","secrets"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_secret_route","summary":"Delete Convai Workspace Secret","description":"Delete a workspace secret if it's not in use","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","secrets"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]},"patch":{"operationId":"update_secret_route","summary":"Update Convai Workspace Secret","description":"Update an existing secret for the workspace","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Secret data to update","$ref":"#/components/schemas/PatchWorkspaceSecretRequest"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","secrets"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/secrets/{secret_id}/dependencies/{resource_type}":{"get":{"operationId":"get_secret_dependencies_route","summary":"Get Secret Dependencies By Type","description":"Get paginated list of resources that depend on a specific secret, filtered by resource type.","parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"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":{"description":"How many dependency items to return per page.","type":"integer","default":20,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","secrets"],"x-fern-sdk-method-name":"get_dependencies","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/{batch_id}/export":{"get":{"operationId":"export_batch_call","summary":"Export Batch Call Results","description":"Download all recipients and conversation results for a terminal batch call as CSV.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Batch call results CSV.","content":{"text/csv":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","batch_calls"],"x-fern-sdk-method-name":"export","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/submit":{"post":{"operationId":"create_batch_call","summary":"Submit A Batch Call Request.","description":"Submit a batch call request to schedule calls for multiple recipients.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Submit_a_batch_call_request__v1_convai_batch_calling_submit_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","batch_calls"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/workspace":{"get":{"operationId":"get_workspace_batch_calls","summary":"Get All Batch Calls For A Workspace.","description":"Get all batch calls for the current workspace.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"last_doc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Doc"}},{"name":"agent_id","in":"query","description":"Filter batch calls to a single agent.","required":false,"schema":{"description":"Filter batch calls to a single agent.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","batch_calls"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/{batch_id}":{"get":{"operationId":"get_batch_call","summary":"Get A Batch Call By Id.","description":"Get detailed information about a batch call including all recipients.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","batch_calls"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_batch_call","summary":"Delete A Batch Call.","description":"Permanently delete a batch call and all recipient records. Conversations remain in history.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","batch_calls"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/{batch_id}/cancel":{"post":{"operationId":"cancel_batch_call","summary":"Cancel A Batch Call.","description":"Cancel a running batch call and set all recipients to cancelled status.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","batch_calls"],"x-fern-sdk-method-name":"cancel","x-fern-audiences":["convai"]}},"/v1/convai/batch-calling/{batch_id}/retry":{"post":{"operationId":"retry_batch_call","summary":"Retry A Batch Call.","description":"Retry a batch call, calling failed and no-response recipients again.","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","batch_calls"],"x-fern-sdk-method-name":"retry","x-fern-audiences":["convai"]}},"/v1/convai/sip-trunk/outbound-call":{"post":{"operationId":"handle_sip_trunk_outbound_call","summary":"Handle An Outbound Call Via Sip Trunk","description":"Handle an outbound call via SIP trunk","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Handle_an_outbound_call_via_SIP_trunk_v1_convai_sip_trunk_outbound_call_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","sip_trunk"],"x-fern-sdk-method-name":"outbound_call","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers":{"post":{"operationId":"create_mcp_server_route","summary":"Create Mcp Server","description":"Create a new MCP server configuration in the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Configuration for an MCP Server.","$ref":"#/components/schemas/MCPServerRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"list_mcp_servers_route","summary":"List Mcp Servers","description":"Retrieve all MCP server configurations available in the workspace.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}":{"get":{"operationId":"get_mcp_route","summary":"Get Mcp Server","description":"Retrieve a specific MCP server configuration from the workspace.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_mcp_server_route","summary":"Delete Mcp Server","description":"Delete a specific MCP server configuration from the workspace.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]},"patch":{"operationId":"update_mcp_server_config_route","summary":"Update Mcp Server Configuration","description":"Update the configuration settings for an MCP server.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Configuration updates for an MCP Server.","$ref":"#/components/schemas/MCPServerConfigUpdateRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tools":{"get":{"operationId":"list_mcp_server_tools_route","summary":"List Mcp Server Tools","description":"Retrieve all tools available for a specific MCP server configuration.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","tools"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/approval-policy":{"patch":{"operationId":"update_mcp_server_approval_policy_route","summary":"Update Mcp Server Approval Policy","description":"Update the approval policy configuration for an MCP server. DEPRECATED: Use PATCH /mcp-servers/{id} endpoint instead.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Approval policy update for an MCP Server.","$ref":"#/components/schemas/MCPApprovalPolicyUpdateRequestModel"}}}},"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,"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","approval_policy"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-approvals":{"post":{"operationId":"add_mcp_server_tool_approval_route","summary":"Create Mcp Server Tool Approval","description":"Add approval for a specific MCP tool when using per-tool approval mode.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tool approval details to add for an MCP Server.","$ref":"#/components/schemas/MCPToolAddApprovalRequestModel"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","tool_approvals"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-approvals/{tool_name}":{"delete":{"operationId":"remove_mcp_server_tool_approval_route","summary":"Delete Mcp Server Tool Approval","description":"Remove approval for a specific MCP tool when using per-tool approval mode.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to remove approval for.","required":true,"schema":{"description":"Name of the MCP tool to remove approval for.","type":"string","title":"Tool Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","tool_approvals"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-configs":{"post":{"operationId":"add_mcp_tool_config_override_route","summary":"Create Mcp Tool Configuration Override","description":"Create configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tool configuration override details to create.","$ref":"#/components/schemas/MCPToolConfigOverrideCreateRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPServerResponseModel"}}}},"409":{"description":"Tool config override already exists"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-configs/{tool_name}":{"get":{"operationId":"get_mcp_tool_config_override_route","summary":"Get Mcp Tool Configuration Override","description":"Retrieve configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to retrieve config overrides for.","required":true,"schema":{"description":"Name of the MCP tool to retrieve config overrides for.","type":"string","title":"Tool Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPToolConfigOverride-Output"}}}},"404":{"description":"Tool config override not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_mcp_tool_config_override_route","summary":"Update Mcp Tool Configuration Override","description":"Update configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to update config overrides for.","required":true,"schema":{"description":"Name of the MCP tool to update config overrides for.","type":"string","title":"Tool Name"}},{"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":{"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.","type":"string","default":"production","title":"Environment"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Tool configuration override details to update.","$ref":"#/components/schemas/MCPToolConfigOverrideUpdateRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPServerResponseModel"}}}},"404":{"description":"Tool config override not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"remove_mcp_tool_config_override_route","summary":"Delete Mcp Tool Configuration Override","description":"Remove configuration overrides for a specific MCP tool.","parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"description":"ID of the MCP Server.","type":"string","title":"Mcp Server Id"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to remove config overrides for.","required":true,"schema":{"description":"Name of the MCP tool to remove config overrides for.","type":"string","title":"Tool Name"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","mcp_servers","tool_configs"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp-accounts/{phone_number_id}":{"get":{"operationId":"get_whatsapp_account","summary":"Get Whatsapp Account","description":"Get a WhatsApp account","parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string","title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","whatsapp_accounts"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_whatsapp_account","summary":"Update Whatsapp Account","description":"Update a WhatsApp account","parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string","title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWhatsAppAccountRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","whatsapp_accounts"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_whatsapp_account","summary":"Delete Whatsapp Account","description":"Delete a WhatsApp account","parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string","title":"Phone Number Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","whatsapp_accounts"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/convai/whatsapp-accounts":{"get":{"operationId":"list_whatsapp_accounts","summary":"List Whatsapp Accounts","description":"List all WhatsApp accounts","parameters":[{"name":"agent_id","in":"query","description":"Filter by assigned agent ID","required":false,"schema":{"description":"Filter by assigned agent ID","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","whatsapp_accounts"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches":{"post":{"operationId":"create_branch_route","summary":"Create A New Branch","description":"Create a new branch from a given version of any branch","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_a_new_branch_v1_convai_agents__agent_id__branches_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"get":{"operationId":"get_branches_route","summary":"List Agent Branches","description":"Returns a list of branches an agent has","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"include_archived","in":"query","description":"Whether archived branches should be included","required":false,"schema":{"description":"Whether archived branches should be included","type":"boolean","default":false,"title":"Include Archived"}},{"name":"limit","in":"query","description":"How many results at most should be returned","required":false,"schema":{"description":"How many results at most should be returned","type":"integer","default":100,"exclusiveMinimum":1,"maximum":100,"title":"Limit"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_AgentBranchSummary_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{branch_id}":{"get":{"operationId":"get_branch_route","summary":"Get Agent Branch","description":"Get information about a single agent branch","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the branch.","required":true,"schema":{"description":"Unique identifier for the branch.","type":"string","examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_branch_route","summary":"Update Agent Branch","description":"Update agent branch properties such as archiving status and protection level","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the branch.","required":true,"schema":{"description":"Unique identifier for the branch.","type":"string","examples":["agtbranch_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_agent_branch_v1_convai_agents__agent_id__branches__branch_id__patch"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/versions/{version_id}":{"get":{"operationId":"get_version_metadata_route","summary":"Get Agent Version Metadata","description":"Get metadata for a specific agent version","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"version_id","in":"path","description":"Unique identifier for the version.","required":true,"schema":{"description":"Unique identifier for the version.","type":"string","examples":["agtvrsn_0901k4aafjxxfxt93gd841r7tv5t"],"title":"Version Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","versions"],"x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{source_branch_id}/merge-preview":{"get":{"operationId":"merge_preview_route","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.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"source_branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Source Branch Id"}},{"name":"target_branch_id","in":"query","description":"The ID of the target branch to merge into.","required":true,"schema":{"description":"The ID of the target branch to merge into.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Target Branch Id"}},{"name":"force","in":"query","description":"When true, source branch changes always win conflicts regardless of timestamps","required":false,"schema":{"description":"When true, source branch changes always win conflicts regardless of timestamps","type":"boolean","default":false,"title":"Force"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"preview_merge","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{source_branch_id}/merge":{"post":{"operationId":"merge_branch_into_target","summary":"Merge A Branch Into A Target Branch","description":"Merge a branch into a target branch","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"source_branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Source Branch Id"}},{"name":"target_branch_id","in":"query","description":"The ID of the target branch to merge into.","required":true,"schema":{"description":"The ID of the target branch to merge into.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Target Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Merge_a_branch_into_a_target_branch_v1_convai_agents__agent_id__branches__source_branch_id__merge_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"merge","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/rebase-preview":{"get":{"operationId":"rebase_preview_route","summary":"Preview Rebased Configuration","description":"Returns the result of rebasing the branch onto main without performing the rebase. Useful for showing an accurate diff before confirming.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"preview_rebase","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/rebase":{"post":{"operationId":"rebase_branch_onto_main","summary":"Rebase A Branch Onto Main","description":"Rebase a branch onto the latest main branch, incorporating main's changes while preserving the branch's own changes.","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"description":"Unique identifier for the source branch to merge from.","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","branches"],"x-fern-sdk-method-name":"rebase","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/deployments":{"post":{"operationId":"create_agent_deployment_route","summary":"Create Or Update Deployments","description":"Create a new deployment for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_or_update_deployments_v1_convai_agents__agent_id__deployments_post"}}}},"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"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","deployments"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/agents/{agent_id}/drafts":{"post":{"operationId":"create_agent_draft_route","summary":"Create Agent Draft","description":"Create a new draft for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"The ID of the agent branch to use","required":true,"schema":{"description":"The ID of the agent branch to use","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_agent_draft_v1_convai_agents__agent_id__drafts_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","drafts"],"x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]},"delete":{"operationId":"delete_agent_draft_route","summary":"Delete Agent Draft","description":"Delete a draft for an agent","parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"description":"The id of an agent. This is returned on agent creation.","type":"string","embed":true,"examples":["agent_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Agent Id"}},{"name":"branch_id","in":"query","description":"The ID of the agent branch to use","required":true,"schema":{"description":"The ID of the agent branch to use","type":"string","embed":true,"examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":["agents","drafts"],"x-fern-sdk-method-name":"delete","x-fern-audiences":["convai"]}},"/v1/speech-engine":{"get":{"operationId":"list_speech_engines","summary":"List Speech Engines","description":"Returns a paginated list of Speech Engine resources.","parameters":[{"name":"page_size","in":"query","description":"How many Speech Engines to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"description":"How many Speech Engines to return at maximum. Can not exceed 100, defaults to 30.","type":"integer","default":30,"maximum":100,"title":"Page Size"}},{"name":"search","in":"query","description":"Search term to filter Speech Engines by name","required":false,"schema":{"description":"Search term to filter Speech Engines by name","anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"description":"The direction to sort the results","default":"desc","$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"description":"The field to sort the results by","anyOf":[{"$ref":"#/components/schemas/AgentSortBy"},{"type":"null"}],"title":"Sort By"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpeechEnginesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"list"},"post":{"operationId":"create_speech_engine","summary":"Create Speech Engine","description":"Create a new Speech Engine resource","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpeechEngineRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechEngineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"create"}},"/v1/speech-engine/{speech_engine_id}":{"get":{"operationId":"get_speech_engine","summary":"Get Speech Engine","description":"Retrieve a Speech Engine resource","parameters":[{"name":"speech_engine_id","in":"path","description":"The speech engine ID (accepts seng_ or agent_ prefix)","required":true,"schema":{"description":"The speech engine ID (accepts seng_ or agent_ prefix)","type":"string","examples":["seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Speech Engine Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechEngineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"get"},"patch":{"operationId":"update_speech_engine","summary":"Update Speech Engine","description":"Update a Speech Engine resource (partial update)","parameters":[{"name":"speech_engine_id","in":"path","description":"The speech engine ID (accepts seng_ or agent_ prefix)","required":true,"schema":{"description":"The speech engine ID (accepts seng_ or agent_ prefix)","type":"string","examples":["seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Speech Engine Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpeechEngineRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechEngineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_speech_engine","summary":"Delete Speech Engine","description":"Delete a Speech Engine resource","parameters":[{"name":"speech_engine_id","in":"path","description":"The speech engine ID (accepts seng_ or agent_ prefix)","required":true,"schema":{"description":"The speech engine ID (accepts seng_ or agent_ prefix)","type":"string","examples":["seng_3701k3ttaq12ewp8b7qv5rfyszkz"],"title":"Speech Engine Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Speech Engine"],"x-fern-sdk-group-name":"speech_engine","x-fern-sdk-method-name":"delete"}},"/v1/convai/conversations/{conversation_id}/analysis/run":{"post":{"operationId":"run_conversation_analysis","summary":"Run Conversation Analysis","description":"Run the analysis for a conversation using the agent's current evaluation criteria and data collection settings.","parameters":[{"name":"conversation_id","in":"path","description":"ID of the conversation","required":true,"schema":{"description":"ID of the conversation","type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"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"}}}}},"tags":["Agents Workspace Analytics"],"x-fern-sdk-group-name":["agents","conversations","analysis"],"x-fern-sdk-method-name":"run","x-fern-audiences":["convai"]}},"/v1/convai/conversations/{conversation_id}/analysis/evaluations/run":{"post":{"operationId":"run_conversation_evaluations","summary":"Run Conversation Evaluation","description":"Rerun a specific evaluation for a conversation.","parameters":[{"name":"conversation_id","in":"path","description":"ID of the conversation","required":true,"schema":{"description":"ID of the conversation","type":"string","title":"Conversation Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunConversationEvaluationsRequest"}}}},"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"}}}}},"tags":["Agents Workspace Analytics"],"x-fern-sdk-group-name":["agents","conversations","analysis"],"x-fern-sdk-method-name":"runEvaluation","x-fern-audiences":["convai"]}},"/v1/convai/environment-variables":{"get":{"operationId":"list_environment_variables","summary":"List Environment Variables","description":"List all environment variables for the workspace with optional filtering","parameters":[{"name":"cursor","in":"query","description":"Pagination cursor from previous response","required":false,"schema":{"description":"Pagination cursor from previous response","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"Number of items to return (1-100)","required":false,"schema":{"description":"Number of items to return (1-100)","type":"integer","default":100,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"label","in":"query","description":"Filter by exact label match","required":false,"schema":{"description":"Filter by exact label match","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},{"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":{"description":"Filter to only return variables that have this environment. When specified, the values dict in the response will only contain this environment.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"type","in":"query","description":"Filter by variable type","required":false,"schema":{"description":"Filter by variable type","anyOf":[{"enum":["string","secret","auth_connection"],"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariablesListResponse"}}}},"400":{"description":"Invalid environment filter"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"list","x-fern-audiences":["convai"]},"post":{"operationId":"create_environment_variable","summary":"Create Environment Variable","description":"Create a new environment variable for the workspace","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"discriminator":{"propertyName":"type","mapping":{"string":"#/components/schemas/CreateStringEnvironmentVariableRequest","secret":"#/components/schemas/CreateSecretEnvironmentVariableRequest","auth_connection":"#/components/schemas/CreateAuthConnectionEnvironmentVariableRequest"}},"oneOf":[{"$ref":"#/components/schemas/CreateStringEnvironmentVariableRequest"},{"$ref":"#/components/schemas/CreateSecretEnvironmentVariableRequest"},{"$ref":"#/components/schemas/CreateAuthConnectionEnvironmentVariableRequest"}],"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"400":{"description":"Invalid parameters"},"409":{"description":"Environment variable with this label already exists"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"create","x-fern-audiences":["convai"]}},"/v1/convai/environment-variables/{env_var_id}":{"get":{"operationId":"get_environment_variable","summary":"Get Environment Variable","description":"Get a specific environment variable by ID","parameters":[{"name":"env_var_id","in":"path","required":true,"schema":{"type":"string","title":"Env Var Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"404":{"description":"Environment variable not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"get","x-fern-audiences":["convai"]},"patch":{"operationId":"update_environment_variable","summary":"Update Environment Variable","description":"Replace an environment variable's values. Use null to remove an environment (except production).","parameters":[{"name":"env_var_id","in":"path","required":true,"schema":{"type":"string","title":"Env Var Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentVariableRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"400":{"description":"Invalid parameters or type mismatch"},"404":{"description":"Environment variable not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Agents Platform"],"x-fern-sdk-group-name":"environment_variables","x-fern-sdk-method-name":"update","x-fern-audiences":["convai"]}},"/v1/music/plan":{"post":{"operationId":"compose_plan","summary":"Generate Composition Plan","description":"Create a composition plan for music generation. Usage of this endpoint does not cost any credits but is subject to rate limiting depending on your tier.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Generate_composition_plan_v1_music_plan_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}],"title":"Response Generate Composition Plan V1 Music Plan Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":["music","composition_plan"],"x-fern-sdk-method-name":"create"}},"/v1/music":{"post":{"operationId":"generate","summary":"Compose Music","description":"Compose a song from a prompt or a composition plan.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Compose_music_v1_music_post"}}}},"responses":{"200":{"description":"The generated audio file in the format specified","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"audio/*":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"compose"}},"/v1/music/detailed":{"post":{"operationId":"compose_detailed","summary":"Compose Music With A Detailed Response","description":"Compose a song from a prompt or a composition plan.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Compose_Music_with_a_detailed_response_v1_music_detailed_post"}}}},"responses":{"200":{"description":"Multipart/mixed response with JSON metadata and binary audio file","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"multipart/mixed":{"schema":{"description":"Raw multipart/mixed response data that clients must parse. Contains two parts separated by boundary: 1) application/json part with composition_plan and song_metadata 2) audio/* part with binary audio data and Content-Disposition header","type":"object","format":"binary","properties":{"composition_plan":{"type":"object"},"song_metadata":{"type":"object"},"audio":{"type":"string","format":"binary"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"compose_detailed","x-fern-examples":[{"headers":{"xi-api-key":"xi-api-key"},"request":{"prompt":"A prompt for music generation","music_length_ms":10000},"response":{"body":{"composition_plan":{"positive_global_styles":["pop","rock","jazz"],"negative_global_styles":["metal","hip-hop","country"],"sections":[{"section_name":"Verse 1","positive_local_styles":["pop","rock","jazz"],"negative_local_styles":["metal","hip-hop","country"],"duration_ms":10000,"lines":["Verse 1 lyrics"]}]},"song_metadata":{"title":"My Song","description":"My Song Description","genres":["pop","rock","jazz"],"languages":["en","fr"],"is_explicit":false},"audio":"[binary audio data]"}}}]}},"/v1/music/detailed/stream":{"post":{"operationId":"compose_detailed_stream","summary":"Stream Composed Music With A Detailed Response","description":"Stream a song and its detailed metadata using Server-Sent Events (SSE).","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_composed_music_with_a_detailed_response_v1_music_detailed_stream_post"}}}},"responses":{"200":{"description":"Server-Sent Events for composition plan, song metadata, audio chunks with optional word timestamps, and completion.","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"text/event-stream":{"schema":{"description":"SSE stream. Audio chunks are emitted as base64-encoded payloads with optional word timestamps in audio_chunk events.","type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"compose_detailed_stream","x-fern-streaming":true}},"/v1/music/stream":{"post":{"operationId":"stream_compose","summary":"Stream Composed Music","description":"Stream a composed song from a prompt or a composition plan.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. Use \"auto\" (the default) to let the API pick the best format for the selected model: mp3_44100_128 for v1 models and mp3_48000_192 for v2 models. ","required":false,"schema":{"type":"string","default":"auto","enum":["auto","mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320","mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Stream_composed_music_v1_music_stream_post"}}}},"responses":{"200":{"description":"Streaming audio data in the format specified","headers":{"song-id":{"description":"Unique identifier for the generated song","schema":{"type":"string"}}},"content":{"audio/*":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"stream","x-fern-streaming":true}},"/v1/music/upload":{"post":{"operationId":"upload_song","summary":"Upload Music","description":"Upload a music file to be later used for inpainting. Price for uploading is the same as the one for song generation. All uploaded content gets inspected for copyright infringement. If copyrighted content is detected, half of the request cost is still charged.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Upload_music_v1_music_upload_post"}}}},"responses":{"200":{"description":"Successfully uploaded music file with optional composition plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"upload"}},"/v1/music/stem-separation":{"post":{"operationId":"separate_song_stems","summary":"Stem Separation","description":"Separate an audio file into individual stems. This endpoint might have high latency, depending on the length of the audio file.","parameters":[{"name":"output_format","in":"query","description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","required":false,"schema":{"description":"Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.","default":"mp3_44100_128","$ref":"#/components/schemas/AllowedOutputFormats","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"],"title":"Output format of the generated audio."}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Stem_separation_v1_music_stem_separation_post"}}}},"responses":{"200":{"description":"ZIP archive containing separated audio stems. Each stem is provided as a separate audio file in the requested output format.","headers":{"Content-Disposition":{"description":"Attachment header with filename","schema":{"type":"string","example":"attachment; filename=stems.zip"}}},"content":{"application/zip":{"schema":{"type":"string","format":"binary"},"example":"Binary ZIP file containing files like: vocals.mp3, drums.mp3, bass.mp3, guitar.mp3, piano.mp3, other.mp3"}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-generation"],"x-fern-sdk-group-name":"music","x-fern-sdk-method-name":"separate_stems"}},"/v1/music/finetunes":{"get":{"operationId":"get_finetunes","summary":"Get Music Finetunes","description":"List music finetunes accessible to you (your own, workspace-shared, and ElevenLabs-curated), with optional filtering, sorting, and cursor pagination.","parameters":[{"name":"cursor","in":"query","description":"Used for fetching the next page. Cursor is returned in the response.","required":false,"schema":{"description":"Used for fetching the next page. Cursor is returned in the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"page_size","in":"query","description":"How many finetunes to return. Max 100, default 50.","required":false,"schema":{"description":"How many finetunes to return. Max 100, default 50.","type":"integer","default":50,"maximum":100,"minimum":1,"title":"Page Size"}},{"name":"visibility","in":"query","description":"Filter by visibility. 'private' returns private finetunes; 'workspace' returns workspace-shared finetunes; 'public' returns public finetunes, which are currently ElevenLabs curated finetunes. Omit to return all accessible finetunes.","required":false,"schema":{"description":"Filter by visibility. 'private' returns private finetunes; 'workspace' returns workspace-shared finetunes; 'public' returns public finetunes, which are currently ElevenLabs curated finetunes. Omit to return all accessible finetunes.","anyOf":[{"$ref":"#/components/schemas/FinetuneVisibility"},{"type":"null"}],"title":"Visibility"}},{"name":"created_by","in":"query","description":"Filter by creator. 'self' returns finetunes you created; 'workspace' returns finetunes created by workspace teammates; 'elevenlabs' returns ElevenLabs curated finetunes. Omit to return finetunes from all creators.","required":false,"schema":{"description":"Filter by creator. 'self' returns finetunes you created; 'workspace' returns finetunes created by workspace teammates; 'elevenlabs' returns ElevenLabs curated finetunes. Omit to return finetunes from all creators.","anyOf":[{"$ref":"#/components/schemas/FinetuneCreatedBy"},{"type":"null"}],"title":"Created By"}},{"name":"sort","in":"query","description":"Sort by field (created_at or name)","required":false,"schema":{"description":"Sort by field (created_at or name)","type":"string","default":"created_at","enum":["created_at","name"],"title":"Sort"}},{"name":"sort_direction","in":"query","description":"Sort direction (asc or desc)","required":false,"schema":{"description":"Sort direction (asc or desc)","type":"string","default":"desc","enum":["asc","desc"],"title":"Sort Direction"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetunePageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"list"},"post":{"operationId":"create_finetune","summary":"Create Music Finetune","description":"Create a new music finetune","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Create_Music_Finetune_v1_music_finetunes_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"create"}},"/v1/music/finetunes/{finetune_id}":{"get":{"operationId":"get_finetune","summary":"Get Music Finetune","description":"Get a music finetune.","parameters":[{"name":"finetune_id","in":"path","required":true,"schema":{"type":"string","title":"Finetune Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"get"},"patch":{"operationId":"update_finetune","summary":"Update Music Finetune","description":"Update a music finetune.","parameters":[{"name":"finetune_id","in":"path","required":true,"schema":{"type":"string","title":"Finetune Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMusicFinetuneRequestModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_finetune","summary":"Delete Music Finetune","description":"Delete a music finetune","parameters":[{"name":"finetune_id","in":"path","required":true,"schema":{"type":"string","title":"Finetune Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"}}}},"403":{"description":"Missing permissions to manage music finetunes."},"404":{"description":"Finetune not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["music-finetunes"],"x-fern-sdk-group-name":["music","finetunes"],"x-fern-sdk-method-name":"delete"}},"/v1/productions/orders":{"post":{"operationId":"public_create_order","summary":"Create Order","description":"Creates a new Productions order in the workspace. The order starts in the open state and can be configured with items before submission.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CreateOrderRequest"},{"type":"null"}],"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"create"},"get":{"operationId":"public_list_orders","summary":"List Orders","description":"Lists Productions orders in the workspace. Supports filtering by status and date range, with pagination.","parameters":[{"name":"page_size","in":"query","description":"Maximum number of orders to return per page.","required":false,"schema":{"description":"Maximum number of orders to return per page.","type":"integer","default":20,"maximum":100,"title":"Page Size"}},{"name":"offset","in":"query","description":"Number of orders to skip for pagination.","required":false,"schema":{"description":"Number of orders to skip for pagination.","type":"integer","default":0,"minimum":0,"title":"Offset"}},{"name":"status","in":"query","description":"Filter orders by one or more statuses.","required":false,"schema":{"description":"Filter orders by one or more statuses.","anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/OrderRequestState"}},{"type":"null"}],"title":"Status"}},{"name":"start_date","in":"query","description":"Filter orders created on or after this date.","required":false,"schema":{"description":"Filter orders created on or after this date.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","description":"Filter orders created on or before this date.","required":false,"schema":{"description":"Filter orders created on or before this date.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListOrdersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"list"}},"/v1/productions/orders/{order_id}":{"get":{"operationId":"public_get_order","summary":"Get Order","description":"Retrieves full details for a Productions order.\n\nQuote and pricing information may not be available immediately; if you wish to see the quote before submission, you may need to poll the order details until it is ready.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"get"},"patch":{"operationId":"public_update_order","summary":"Update Order","description":"Updates an open order.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_order_v1_productions_orders__order_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"update"}},"/v1/productions/orders/{order_id}/media":{"post":{"operationId":"public_register_media","summary":"Register Media","description":"Registers a media file with an order, either by uploading it directly or by providing a URL to fetch it from. Exactly one of `media` or `media_url` must be provided. The registered media can then be referenced when adding order items.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order to which this media will be attached.","required":true,"schema":{"description":"The ID of the order to which this media will be attached.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Register_media_v1_productions_orders__order_id__media_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterMediaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","media"],"x-fern-sdk-method-name":"register"}},"/v1/productions/orders/{order_id}/media/{media_id}":{"get":{"operationId":"public_get_media_info","summary":"Get Media Info","description":"Retrieves metadata and a time-limited download URL for a previously uploaded media file.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"media_id","in":"path","description":"The ID of the media file.","required":true,"schema":{"description":"The ID of the media file.","$ref":"#/components/schemas/MediaId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderMediaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","media"],"x-fern-sdk-method-name":"get"}},"/v1/productions/orders/{order_id}/items":{"post":{"operationId":"public_upsert_order_item","summary":"Upsert Order Item","description":"Adds or updates an order item on an open order. Returns the item ID and the quoted price.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Upsert_order_item_v1_productions_orders__order_id__items_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertOrderItemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","items"],"x-fern-sdk-method-name":"upsert"}},"/v1/productions/orders/{order_id}/items/{item_id}":{"delete":{"operationId":"public_remove_order_item","summary":"Remove Order Item","description":"Removes an order item from an open order.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"item_id","in":"path","description":"The ID of the order item.","required":true,"schema":{"description":"The ID of the order item.","$ref":"#/components/schemas/ItemId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveOrderItemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","items"],"x-fern-sdk-method-name":"remove"}},"/v1/productions/orders/{order_id}/submit":{"post":{"operationId":"public_submit_order","summary":"Submit Order","description":"Submits an open order for processing. The order must have at least one item. Once submitted, items can no longer be modified.\n\nUpon submission, the workspace will be charged for the order. The quote is based on information extracted from the uploaded media, such as its duration. The quote may not be available immediately; if you wish to see the quote before submission, you may need to poll the order details until the quote is ready.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitOrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders"],"x-fern-sdk-method-name":"submit"}},"/v1/productions/orders/{order_id}/deliverables":{"get":{"operationId":"public_get_order_deliverables","summary":"Get Order Deliverables","description":"Retrieves the delivered files for a completed order. Returns an empty list if the order is not yet completed.","parameters":[{"name":"order_id","in":"path","description":"The ID of the order.","required":true,"schema":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderDeliverablesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","deliverables"],"x-fern-sdk-method-name":"list"}},"/v1/productions/orders/languages/{order_item_kind}":{"get":{"operationId":"public_get_available_languages","summary":"Get Available Languages","description":"Returns the available languages for a given order item kind.","parameters":[{"name":"order_item_kind","in":"path","description":"The kind of order item.","required":true,"schema":{"description":"The kind of order item.","$ref":"#/components/schemas/OrderItemKind"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["productions"],"x-fern-sdk-group-name":["productions","orders","languages"],"x-fern-sdk-method-name":"list"}},"/v1/voices/pvc":{"post":{"operationId":"create_pvc_voice","summary":"Create PVC voice","description":"Creates a new PVC voice with metadata but no samples","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Create_PVC_voice_v1_voices_pvc_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc"],"x-fern-sdk-method-name":"create"}},"/v1/voices/pvc/{voice_id}":{"post":{"operationId":"edit_pvc_voice","summary":"Edit Pvc Voice","description":"Edit PVC voice metadata","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Edit_PVC_voice_v1_voices_pvc__voice_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc"],"x-fern-sdk-method-name":"update"}},"/v1/voices/pvc/{voice_id}/samples":{"post":{"operationId":"add_pvc_voice_samples","summary":"Add Samples To Pvc Voice","description":"Add audio samples to a PVC voice","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Add_samples_to_PVC_voice_v1_voices_pvc__voice_id__samples_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SampleResponseModel"},"title":"Response Add Samples To Pvc Voice V1 Voices Pvc Voice Id Samples Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples"],"x-fern-sdk-method-name":"create"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}":{"post":{"operationId":"edit_pvc_voice_sample","summary":"Update Pvc Voice Sample","description":"Update a PVC voice sample - apply noise removal, select speaker, change trim times or file name.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Update_PVC_voice_sample_v1_voices_pvc__voice_id__samples__sample_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVoiceResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples"],"x-fern-sdk-method-name":"update"},"delete":{"operationId":"delete_pvc_voice_sample","summary":"Delete Pvc Voice Sample","description":"Delete a sample from a PVC voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceSampleResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples"],"x-fern-sdk-method-name":"delete"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/audio":{"get":{"operationId":"get_pvc_sample_audio","summary":"Retrieve Voice Sample Audio","description":"Retrieve the first 30 seconds of voice sample audio with or without noise removal.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"remove_background_noise","in":"query","description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","required":false,"schema":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"embed":true,"examples":[true],"title":"Remove Background Noise"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSamplePreviewResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","audio"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/waveform":{"get":{"operationId":"get_pvc_sample_visual_waveform","summary":"Retrieve Voice Sample Visual Waveform","description":"Retrieve the visual waveform of a voice sample.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceSampleVisualWaveformResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","waveform"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/speakers":{"get":{"operationId":"get_pvc_sample_speakers","summary":"Retrieve Speaker Separation Status","description":"Retrieve the status of the speaker separation process and the list of detected speakers if complete.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerSeparationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","speakers"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/separate-speakers":{"post":{"operationId":"start_speaker_separation","summary":"Start Speaker Separation","description":"Start speaker separation process for a sample","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSpeakerSeparationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","speakers"],"x-fern-sdk-method-name":"separate"}},"/v1/voices/pvc/{voice_id}/samples/{sample_id}/speakers/{speaker_id}/audio":{"get":{"operationId":"get_speaker_audio","summary":"Retrieve Separated Speaker Audio","description":"Retrieve the separated audio for a specific speaker.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"sample_id","in":"path","description":"Sample ID to be used","required":true,"schema":{"description":"Sample ID to be used","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Sample Id"}},{"name":"speaker_id","in":"path","description":"Speaker ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id}/samples/{sample_id}/speakers to list all the available speakers for a sample.","required":true,"schema":{"description":"Speaker ID to be used, you can use GET https://api.elevenlabs.io/v1/voices/{voice_id}/samples/{sample_id}/speakers to list all the available speakers for a sample.","type":"string","examples":["VW7YKqPnjY4h39yTbx2L"],"title":"Speaker Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerAudioResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","samples","speakers","audio"],"x-fern-sdk-method-name":"get"}},"/v1/voices/pvc/{voice_id}/captcha":{"get":{"operationId":"get_pvc_voice_captcha","summary":"Get Pvc Voice Captcha","description":"Get captcha for PVC voice verification.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","verification","captcha"],"x-fern-sdk-method-name":"get"},"post":{"operationId":"verify_pvc_voice_captcha","summary":"Verify Pvc Voice Captcha","description":"Submit captcha verification for PVC voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Verify_PVC_voice_captcha_v1_voices_pvc__voice_id__captcha_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyPVCVoiceCaptchaResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","verification","captcha"],"x-fern-sdk-method-name":"verify"}},"/v1/voices/pvc/{voice_id}/train":{"post":{"operationId":"run_pvc_voice_training","summary":"Run Pvc Training","description":"Start PVC training process for a voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Run_PVC_training_v1_voices_pvc__voice_id__train_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartPVCVoiceTrainingResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc"],"x-fern-sdk-method-name":"train"}},"/v1/voices/pvc/{voice_id}/verification":{"post":{"operationId":"request_pvc_manual_verification","summary":"Request Manual Verification","description":"Request manual verification for a PVC voice.","parameters":[{"name":"voice_id","in":"path","description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","required":true,"schema":{"description":"Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Voice Id"}},{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Request_manual_verification_v1_voices_pvc__voice_id__verification_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestPVCManualVerificationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["pvc-voices"],"x-fern-sdk-group-name":["voices","pvc","verification"],"x-fern-sdk-method-name":"request"}},"/v1/workspace/analytics/query/usage-by-product-over-time":{"post":{"operationId":"usage_by_product_over_time","summary":"Get Workspace Usage","description":"Returns credit usage broken down by product type over time. The response is a tabular structure with columns, column_types, column_units, and rows.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Get_Workspace_Usage_v1_workspace_analytics_query_usage_by_product_over_time_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceAnalyticsQueryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["access:all"],"x-fern-sdk-group-name":["workspace","usage"],"x-fern-sdk-method-name":"get_usage_by_product_over_time"}},"/v1/workspace/analytics/requests":{"post":{"operationId":"requests_list","summary":"List Api Requests","description":"Returns a list of API requests. Supports filtering by time range, column filters, and search terms. At least one of start_time or end_time must be provided. An optional sort parameter controls timestamp ordering. Results are ordered by timestamp. Descending if end_time is used, ascending if start_time is used. The response is a tabular structure with columns, column_types, column_units, and rows.","parameters":[{"name":"xi-api-key","in":"header","description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","required":false,"schema":{"description":"Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_List_API_requests_v1_workspace_analytics_requests_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceAnalyticsQueryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["access:all"],"x-fern-sdk-group-name":["workspace","analytics","requests"],"x-fern-sdk-method-name":"get"}}},"components":{"schemas":{"ASRConversationalConfig":{"type":"object","properties":{"quality":{"description":"The quality of the transcription","default":"high","$ref":"#/components/schemas/ASRQuality"},"provider":{"description":"The provider of the transcription service","default":"scribe_realtime","$ref":"#/components/schemas/ASRProvider"},"user_input_audio_format":{"description":"The format of the audio to be transcribed","default":"pcm_16000","$ref":"#/components/schemas/ASRInputFormat"},"keywords":{"description":"Keywords to boost prediction probability for","type":"array","items":{"type":"string"},"title":"Keywords","x-convai-client-override":true,"x-convai-soft-override-disallowed":true}},"example":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"title":"ASRConversationalConfig"},"ASRConversationalConfigOverride":{"type":"object","properties":{"keywords":{"description":"Keywords to boost prediction probability for","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords","x-convai-client-override":true,"x-convai-soft-override-disallowed":true}},"example":{"keywords":["hello","world"]},"title":"ASRConversationalConfigOverride"},"ASRConversationalConfigOverrideConfig":{"type":"object","properties":{"keywords":{"description":"Whether to allow overriding the keywords field.","type":"boolean","default":false,"title":"Keywords"}},"title":"ASRConversationalConfigOverrideConfig"},"ASRConversationalConfigWorkflowOverride":{"type":"object","properties":{"quality":{"description":"The quality of the transcription","anyOf":[{"$ref":"#/components/schemas/ASRQuality"},{"type":"null"}]},"provider":{"description":"The provider of the transcription service","anyOf":[{"$ref":"#/components/schemas/ASRProvider"},{"type":"null"}]},"user_input_audio_format":{"description":"The format of the audio to be transcribed","anyOf":[{"$ref":"#/components/schemas/ASRInputFormat"},{"type":"null"}]},"keywords":{"description":"Keywords to boost prediction probability for","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords","x-convai-client-override":true,"x-convai-soft-override-disallowed":true}},"example":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"title":"ASRConversationalConfigWorkflowOverride"},"ASRInputFormat":{"type":"string","default":"pcm_16000","enum":["pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_44100","pcm_48000","ulaw_8000"],"title":"ASRInputFormat"},"ASRProvider":{"type":"string","default":"scribe_realtime","enum":["elevenlabs","scribe_realtime"],"title":"ASRProvider","x-fern-enum":{"elevenlabs":{"description":"Deprecated: Use scribe_realtime instead.","deprecated":true}}},"ASRQuality":{"type":"string","default":"high","enum":["high"],"title":"ASRQuality"},"ASTAdditionOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"add_operator","const":"add_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTAdditionOperatorNode"},"ASTAdditionOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"add_operator","const":"add_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTAdditionOperatorNode"},"ASTAndOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"and_operator","const":"and_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Input"},"minItems":2,"title":"Children"}},"required":["children"],"title":"ASTAndOperatorNode"},"ASTAndOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"and_operator","const":"and_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Output"},"minItems":2,"title":"Children"}},"required":["type","children"],"title":"ASTAndOperatorNode"},"ASTBooleanNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"boolean_literal","const":"boolean_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"boolean","title":"Value"}},"required":["value"],"title":"ASTBooleanNode"},"ASTBooleanNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"boolean_literal","const":"boolean_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"boolean","title":"Value"}},"required":["type","value"],"title":"ASTBooleanNode"},"ASTConditionalOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"conditional_operator","const":"conditional_operator","title":"Type"},"condition":{"description":"Condition deciding which expression should be selected.","$ref":"#/components/schemas/ASTNode-Input"},"trueExpression":{"description":"Expression selected if the condition is true.","$ref":"#/components/schemas/ASTNode-Input"},"falseExpression":{"description":"Expression selected if the condition is false.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["condition","trueExpression","falseExpression"],"title":"ASTConditionalOperatorNode"},"ASTConditionalOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"conditional_operator","const":"conditional_operator","title":"Type"},"condition":{"description":"Condition deciding which expression should be selected.","$ref":"#/components/schemas/ASTNode-Output"},"trueExpression":{"description":"Expression selected if the condition is true.","$ref":"#/components/schemas/ASTNode-Output"},"falseExpression":{"description":"Expression selected if the condition is false.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","condition","trueExpression","falseExpression"],"title":"ASTConditionalOperatorNode"},"ASTDivisionOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"div_operator","const":"div_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTDivisionOperatorNode"},"ASTDivisionOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"div_operator","const":"div_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTDivisionOperatorNode"},"ASTDynamicVariableNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"dynamic_variable","const":"dynamic_variable","title":"Type"},"name":{"description":"The name of the dynamic variable.","type":"string","title":"Name"}},"required":["name"],"title":"ASTDynamicVariableNode"},"ASTDynamicVariableNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"dynamic_variable","const":"dynamic_variable","title":"Type"},"name":{"description":"The name of the dynamic variable.","type":"string","title":"Name"}},"required":["type","name"],"title":"ASTDynamicVariableNode"},"ASTEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"eq_operator","const":"eq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTEqualsOperatorNode"},"ASTEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"eq_operator","const":"eq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTEqualsOperatorNode"},"ASTGreaterThanOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"gt_operator","const":"gt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTGreaterThanOperatorNode"},"ASTGreaterThanOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"gt_operator","const":"gt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTGreaterThanOperatorNode"},"ASTGreaterThanOrEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"gte_operator","const":"gte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTGreaterThanOrEqualsOperatorNode"},"ASTGreaterThanOrEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"gte_operator","const":"gte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTGreaterThanOrEqualsOperatorNode"},"ASTLLMNode-Input":{"oneOf":[{"properties":{"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"value_schema":{"description":"JSON schema describing the value that the LLM should extract.","$ref":"#/components/schemas/LLMLiteralJsonSchemaProperty","examples":[{"description":"User's last message contains a question about our pricing.","type":"boolean"},{"description":"User provided their email address.","type":"boolean"}]}},"type":"object","required":["value_schema"],"title":"ASTLLMNode"},{"properties":{"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"prompt":{"description":"The prompt to evaluate to a boolean value. Deprecated. Use a boolean schema instead.","type":"string","deprecated":true}},"type":"object","required":["prompt"],"title":"ASTLLMNode"}]},"ASTLLMNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"value_schema":{"description":"JSON schema describing the value that the LLM should extract.","$ref":"#/components/schemas/LLMLiteralJsonSchemaProperty","examples":[{"description":"User's last message contains a question about our pricing.","type":"boolean"},{"description":"User provided their email address.","type":"boolean"}]},"prompt":{"description":"The prompt to evaluate to a boolean value. Deprecated. Use a boolean schema instead.","type":"string","deprecated":true}},"required":["type","value_schema","prompt"],"title":"ASTLLMNode"},"ASTLessThanOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"lt_operator","const":"lt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTLessThanOperatorNode"},"ASTLessThanOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"lt_operator","const":"lt_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTLessThanOperatorNode"},"ASTLessThanOrEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"lte_operator","const":"lte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTLessThanOrEqualsOperatorNode"},"ASTLessThanOrEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"lte_operator","const":"lte_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTLessThanOrEqualsOperatorNode"},"ASTMultiplicationOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"mul_operator","const":"mul_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTMultiplicationOperatorNode"},"ASTMultiplicationOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"mul_operator","const":"mul_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTMultiplicationOperatorNode"},"ASTNode-Input":{"discriminator":{"propertyName":"type","mapping":{"add_operator":"#/components/schemas/ASTAdditionOperatorNode-Input","and_operator":"#/components/schemas/ASTAndOperatorNode-Input","boolean_literal":"#/components/schemas/ASTBooleanNode-Input","conditional_operator":"#/components/schemas/ASTConditionalOperatorNode-Input","div_operator":"#/components/schemas/ASTDivisionOperatorNode-Input","dynamic_variable":"#/components/schemas/ASTDynamicVariableNode-Input","eq_operator":"#/components/schemas/ASTEqualsOperatorNode-Input","gt_operator":"#/components/schemas/ASTGreaterThanOperatorNode-Input","gte_operator":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Input","llm":"#/components/schemas/ASTLLMNode-Input","lt_operator":"#/components/schemas/ASTLessThanOperatorNode-Input","lte_operator":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Input","mul_operator":"#/components/schemas/ASTMultiplicationOperatorNode-Input","neq_operator":"#/components/schemas/ASTNotEqualsOperatorNode-Input","null_literal":"#/components/schemas/ASTNullNode-Input","number_literal":"#/components/schemas/ASTNumberNode-Input","or_operator":"#/components/schemas/ASTOrOperatorNode-Input","string_literal":"#/components/schemas/ASTStringNode-Input","sub_operator":"#/components/schemas/ASTSubtractionOperatorNode-Input"}},"oneOf":[{"$ref":"#/components/schemas/ASTStringNode-Input","description":"String literal."},{"$ref":"#/components/schemas/ASTNumberNode-Input","description":"Number literal."},{"$ref":"#/components/schemas/ASTBooleanNode-Input","description":"Boolean literal."},{"$ref":"#/components/schemas/ASTNullNode-Input","description":"Null literal."},{"$ref":"#/components/schemas/ASTLLMNode-Input","description":"Value extracted by an LLM according to the given schema."},{"$ref":"#/components/schemas/ASTDynamicVariableNode-Input","description":"Reference to a dynamic variable."},{"$ref":"#/components/schemas/ASTOrOperatorNode-Input","description":"Evaluates to true if any child is true."},{"$ref":"#/components/schemas/ASTAndOperatorNode-Input","description":"Evaluates to true if all children are true."},{"$ref":"#/components/schemas/ASTEqualsOperatorNode-Input","description":"Evaluates to true if the left value equals the right."},{"$ref":"#/components/schemas/ASTNotEqualsOperatorNode-Input","description":"Evaluates to true if the left value does not equal the right."},{"$ref":"#/components/schemas/ASTGreaterThanOperatorNode-Input","description":"Evaluates to true if the left value is greater than the right."},{"$ref":"#/components/schemas/ASTLessThanOperatorNode-Input","description":"Evaluates to true if the left value is less than the right."},{"$ref":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Input","description":"Evaluates to true if the left value is greater than or equal to the right."},{"$ref":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Input","description":"Evaluates to true if the left value is less than or equal to the right."},{"$ref":"#/components/schemas/ASTAdditionOperatorNode-Input","description":"Adds the left and right values."},{"$ref":"#/components/schemas/ASTSubtractionOperatorNode-Input","description":"Subtracts the right value from the left."},{"$ref":"#/components/schemas/ASTMultiplicationOperatorNode-Input","description":"Multiplies the left value times the right."},{"$ref":"#/components/schemas/ASTDivisionOperatorNode-Input","description":"Divides the left value by the right."},{"$ref":"#/components/schemas/ASTConditionalOperatorNode-Input","description":"Selects one of two expressions based on whether the given condition evaluates to true."}]},"ASTNode-Output":{"discriminator":{"propertyName":"type","mapping":{"add_operator":"#/components/schemas/ASTAdditionOperatorNode-Output","and_operator":"#/components/schemas/ASTAndOperatorNode-Output","boolean_literal":"#/components/schemas/ASTBooleanNode-Output","conditional_operator":"#/components/schemas/ASTConditionalOperatorNode-Output","div_operator":"#/components/schemas/ASTDivisionOperatorNode-Output","dynamic_variable":"#/components/schemas/ASTDynamicVariableNode-Output","eq_operator":"#/components/schemas/ASTEqualsOperatorNode-Output","gt_operator":"#/components/schemas/ASTGreaterThanOperatorNode-Output","gte_operator":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Output","llm":"#/components/schemas/ASTLLMNode-Output","lt_operator":"#/components/schemas/ASTLessThanOperatorNode-Output","lte_operator":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Output","mul_operator":"#/components/schemas/ASTMultiplicationOperatorNode-Output","neq_operator":"#/components/schemas/ASTNotEqualsOperatorNode-Output","null_literal":"#/components/schemas/ASTNullNode-Output","number_literal":"#/components/schemas/ASTNumberNode-Output","or_operator":"#/components/schemas/ASTOrOperatorNode-Output","string_literal":"#/components/schemas/ASTStringNode-Output","sub_operator":"#/components/schemas/ASTSubtractionOperatorNode-Output"}},"oneOf":[{"$ref":"#/components/schemas/ASTStringNode-Output","description":"String literal."},{"$ref":"#/components/schemas/ASTNumberNode-Output","description":"Number literal."},{"$ref":"#/components/schemas/ASTBooleanNode-Output","description":"Boolean literal."},{"$ref":"#/components/schemas/ASTNullNode-Output","description":"Null literal."},{"$ref":"#/components/schemas/ASTLLMNode-Output","description":"Value extracted by an LLM according to the given schema."},{"$ref":"#/components/schemas/ASTDynamicVariableNode-Output","description":"Reference to a dynamic variable."},{"$ref":"#/components/schemas/ASTOrOperatorNode-Output","description":"Evaluates to true if any child is true."},{"$ref":"#/components/schemas/ASTAndOperatorNode-Output","description":"Evaluates to true if all children are true."},{"$ref":"#/components/schemas/ASTEqualsOperatorNode-Output","description":"Evaluates to true if the left value equals the right."},{"$ref":"#/components/schemas/ASTNotEqualsOperatorNode-Output","description":"Evaluates to true if the left value does not equal the right."},{"$ref":"#/components/schemas/ASTGreaterThanOperatorNode-Output","description":"Evaluates to true if the left value is greater than the right."},{"$ref":"#/components/schemas/ASTLessThanOperatorNode-Output","description":"Evaluates to true if the left value is less than the right."},{"$ref":"#/components/schemas/ASTGreaterThanOrEqualsOperatorNode-Output","description":"Evaluates to true if the left value is greater than or equal to the right."},{"$ref":"#/components/schemas/ASTLessThanOrEqualsOperatorNode-Output","description":"Evaluates to true if the left value is less than or equal to the right."},{"$ref":"#/components/schemas/ASTAdditionOperatorNode-Output","description":"Adds the left and right values."},{"$ref":"#/components/schemas/ASTSubtractionOperatorNode-Output","description":"Subtracts the right value from the left."},{"$ref":"#/components/schemas/ASTMultiplicationOperatorNode-Output","description":"Multiplies the left value times the right."},{"$ref":"#/components/schemas/ASTDivisionOperatorNode-Output","description":"Divides the left value by the right."},{"$ref":"#/components/schemas/ASTConditionalOperatorNode-Output","description":"Selects one of two expressions based on whether the given condition evaluates to true."}]},"ASTNotEqualsOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"neq_operator","const":"neq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTNotEqualsOperatorNode"},"ASTNotEqualsOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"neq_operator","const":"neq_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTNotEqualsOperatorNode"},"ASTNullNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"null_literal","const":"null_literal","title":"Type"}},"title":"ASTNullNode"},"ASTNullNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"null_literal","const":"null_literal","title":"Type"}},"required":["type"],"title":"ASTNullNode"},"ASTNumberNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"number_literal","const":"number_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"number","title":"Value"}},"required":["value"],"title":"ASTNumberNode"},"ASTNumberNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"number_literal","const":"number_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"number","title":"Value"}},"required":["type","value"],"title":"ASTNumberNode"},"ASTOrOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"or_operator","const":"or_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Input"},"minItems":2,"title":"Children"}},"required":["children"],"title":"ASTOrOperatorNode"},"ASTOrOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"or_operator","const":"or_operator","title":"Type"},"children":{"description":"Child nodes of the logical operator.","type":"array","items":{"$ref":"#/components/schemas/ASTNode-Output"},"minItems":2,"title":"Children"}},"required":["type","children"],"title":"ASTOrOperatorNode"},"ASTStringNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"string_literal","const":"string_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"string","title":"Value"}},"required":["value"],"title":"ASTStringNode"},"ASTStringNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"string_literal","const":"string_literal","title":"Type"},"value":{"description":"Value of this literal.","type":"string","title":"Value"}},"required":["type","value"],"title":"ASTStringNode"},"ASTSubtractionOperatorNode-Input":{"type":"object","properties":{"type":{"type":"string","default":"sub_operator","const":"sub_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["left","right"],"title":"ASTSubtractionOperatorNode"},"ASTSubtractionOperatorNode-Output":{"type":"object","properties":{"type":{"type":"string","default":"sub_operator","const":"sub_operator","title":"Type"},"left":{"description":"Left operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"},"right":{"description":"Right operand of the binary operator.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["type","left","right"],"title":"ASTSubtractionOperatorNode"},"AccountChangeActivityId":{"description":"OCSF Activity IDs for Account Change [3001] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/account_change","type":"integer","enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,99],"title":"AccountChangeActivityId"},"ActorModel":{"description":"OCSF Actor object - describes the entity that performed the action.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/actor","type":"object","properties":{"user":{"description":"User who performed the action","$ref":"#/components/schemas/UserModel"},"app_name":{"description":"Client application or service name","anyOf":[{"type":"string"},{"type":"null"}],"title":"App Name"},"app_uid":{"description":"Client application unique identifier","anyOf":[{"type":"string"},{"type":"null"}],"title":"App Uid"},"session":{"description":"Session information","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session"}},"additionalProperties":false,"required":["user"],"title":"ActorModel"},"AddChapterResponseModel":{"type":"object","properties":{"chapter":{"$ref":"#/components/schemas/ChapterWithContentResponseModel"}},"required":["chapter"],"title":"AddChapterResponseModel"},"AddKnowledgeBaseResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"}},"required":["id","name"],"title":"AddKnowledgeBaseResponseModel"},"AddProjectResponseModel":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectResponseModel"}},"required":["project"],"title":"AddProjectResponseModel","x-fern-type-name":"AddProjectResponseModel"},"AddPronunciationDictionaryResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the created pronunciation dictionary.","type":"string","title":"Id"},"name":{"description":"The name of the created pronunciation dictionary.","type":"string","title":"Name"},"created_by":{"description":"The user ID of the creator of the pronunciation dictionary.","type":"string","title":"Created By"},"creation_time_unix":{"description":"The creation time of the pronunciation dictionary in Unix timestamp.","type":"integer","title":"Creation Time Unix"},"version_id":{"description":"The ID of the created pronunciation dictionary version.","type":"string","title":"Version Id"},"version_rules_num":{"description":"The number of rules in the version of the pronunciation dictionary.","type":"integer","title":"Version Rules Num"},"description":{"description":"The description of the pronunciation dictionary.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"permission_on_resource":{"description":"The permission on the resource of the pronunciation dictionary.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"}},"example":{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","name":"My Dictionary","permission_on_resource":"admin","version_id":"5xM3yVvZQKV0EfqQpLrJ","version_rules_num":5},"required":["id","name","created_by","creation_time_unix","version_id","version_rules_num","permission_on_resource"],"title":"AddPronunciationDictionaryResponseModel","x-fern-type-name":"AddPronunciationDictionaryResponseModel"},"AddVoiceIVCResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the newly created voice.","type":"string","title":"Voice Id"},"requires_verification":{"description":"Whether the voice requires verification","type":"boolean","title":"Requires Verification"}},"example":{"requires_verification":false,"voice_id":"c38kUX8pkfYO2kHyqfFy"},"required":["voice_id","requires_verification"],"title":"AddVoiceIVCResponseModel"},"AddVoiceResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"}},"example":{"voice_id":"b38kUX8pkfYO2kHyqfFy"},"required":["voice_id"],"title":"AddVoiceResponseModel","x-fern-type-name":"AddVoiceResponseModel"},"AddWorkspaceGroupMemberResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace group member addition request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"AddWorkspaceGroupMemberResponseModel"},"AddWorkspaceInviteResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace invite request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"AddWorkspaceInviteResponseModel"},"AdditionalFormatResponseModel":{"type":"object","properties":{"requested_format":{"description":"The requested format.","type":"string","title":"Requested Format"},"file_extension":{"description":"The file extension of the additional format.","type":"string","title":"File Extension"},"content_type":{"description":"The content type of the additional format.","type":"string","title":"Content Type"},"is_base64_encoded":{"description":"Whether the content is base64 encoded.","type":"boolean","title":"Is Base64 Encoded"},"content":{"description":"The content of the additional format.","title":"Content","type":"string"}},"required":["requested_format","file_extension","content_type","is_base64_encoded","content"],"title":"AdditionalFormatResponseModel"},"AdditionalFormats":{"type":"array","items":{"$ref":"#/components/schemas/ExportOptions"},"maxItems":10,"title":"AdditionalFormats"},"AdhocAgentConfigOverrideForTestRequestModel":{"type":"object","properties":{"conversation_config":{"$ref":"#/components/schemas/ConversationalConfigAPIModel-Input"},"platform_settings":{"$ref":"#/components/schemas/AgentPlatformSettingsRequestModel"},"workflow":{"anyOf":[{"$ref":"#/components/schemas/AgentWorkflowRequestModel"},{"type":"null"}]}},"required":["conversation_config","platform_settings"],"title":"AdhocAgentConfigOverrideForTestRequestModel"},"AgentAnalysisItems-Input":{"type":"object","properties":{"evaluation_criteria":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AttachedUserEvaluationRef"},{"$ref":"#/components/schemas/AttachedSystemEvaluationRef"}],"discriminator":{"propertyName":"source","mapping":{"system":"#/components/schemas/AttachedSystemEvaluationRef","user":"#/components/schemas/AttachedUserEvaluationRef"}}},"title":"Evaluation Criteria"},"data_collection":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AttachedUserDataCollectionRef"},{"$ref":"#/components/schemas/AttachedSystemDataCollectionRef"}],"discriminator":{"propertyName":"source","mapping":{"system":"#/components/schemas/AttachedSystemDataCollectionRef","user":"#/components/schemas/AttachedUserDataCollectionRef"}}},"title":"Data Collection"}},"title":"AgentAnalysisItems"},"AgentAnalysisItems-Output":{"type":"object","properties":{"evaluation_criteria":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AttachedUserEvaluationRef"},{"$ref":"#/components/schemas/AttachedSystemEvaluationRef"}],"discriminator":{"propertyName":"source","mapping":{"system":"#/components/schemas/AttachedSystemEvaluationRef","user":"#/components/schemas/AttachedUserEvaluationRef"}}},"title":"Evaluation Criteria"},"data_collection":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AttachedUserDataCollectionRef"},{"$ref":"#/components/schemas/AttachedSystemDataCollectionRef"}],"discriminator":{"propertyName":"source","mapping":{"system":"#/components/schemas/AttachedSystemDataCollectionRef","user":"#/components/schemas/AttachedUserDataCollectionRef"}}},"title":"Data Collection"}},"title":"AgentAnalysisItems"},"AgentBranchBasicInfo":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"AgentBranchBasicInfo"},"AgentBranchResponse":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"description":{"type":"string","title":"Description"},"created_at":{"type":"integer","title":"Created At"},"last_committed_at":{"type":"integer","title":"Last Committed At"},"is_archived":{"type":"boolean","title":"Is Archived"},"protection_status":{"default":"writer_perms_required","$ref":"#/components/schemas/BranchProtectionStatus"},"access_info":{"description":"Access information for the branch","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"current_live_percentage":{"description":"Percentage of traffic live on the branch","type":"number","default":0,"title":"Current Live Percentage"},"parent_branch":{"description":"Parent branch of the branch","anyOf":[{"$ref":"#/components/schemas/AgentBranchBasicInfo"},{"type":"null"}]},"most_recent_versions":{"description":"Most recent versions on the branch","type":"array","items":{"$ref":"#/components/schemas/AgentVersionMetadata"},"title":"Most Recent Versions"}},"required":["id","name","agent_id","description","created_at","last_committed_at","is_archived"],"title":"AgentBranchResponse"},"AgentBranchSummary":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"description":{"type":"string","title":"Description"},"created_at":{"type":"integer","title":"Created At"},"last_committed_at":{"type":"integer","title":"Last Committed At"},"is_archived":{"type":"boolean","title":"Is Archived"},"protection_status":{"default":"writer_perms_required","$ref":"#/components/schemas/BranchProtectionStatus"},"access_info":{"description":"Access information for the branch","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"current_live_percentage":{"description":"Percentage of traffic live on the branch","type":"number","default":0,"title":"Current Live Percentage"},"parent_branch_id":{"description":"ID of the parent branch","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Branch Id"},"draft_exists":{"description":"Whether a draft exists for the branch","type":"boolean","default":false,"title":"Draft Exists"},"calls_7d":{"description":"Number of calls in the last 7 days","type":"integer","default":0,"title":"Calls 7D"}},"required":["id","name","agent_id","description","created_at","last_committed_at","is_archived"],"title":"AgentBranchSummary"},"AgentCallLimits":{"type":"object","properties":{"agent_concurrency_limit":{"description":"The maximum number of concurrent conversations. -1 indicates that there is no maximum","type":"integer","default":-1,"title":"Agent Concurrency Limit"},"daily_limit":{"description":"The maximum number of conversations per day","type":"integer","default":100000,"title":"Daily Limit"},"bursting_enabled":{"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.","type":"boolean","default":true,"title":"Bursting Enabled"}},"example":{"agent_concurrency_limit":-1,"bursting_enabled":true,"daily_limit":100000},"title":"AgentCallLimits"},"AgentConfigAPIModel-Input":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","type":"string","default":"","title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","type":"string","default":"en","title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","type":"boolean","default":false,"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig-Input"},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","type":"boolean","default":false,"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","type":"string","default":"","title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","$ref":"#/components/schemas/PromptAgentAPIModel-Input"}},"example":{"disable_first_message_interruptions":false,"first_message":"Hello, how can I help you today?","language":"en"},"title":"AgentConfigAPIModel","x-fern-type-name":"AgentConfig"},"AgentConfigAPIModel-Output":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","type":"string","default":"","title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","type":"string","default":"en","title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","type":"boolean","default":false,"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig-Output"},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","type":"boolean","default":false,"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","type":"string","default":"","title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","$ref":"#/components/schemas/PromptAgentAPIModel-Output"}},"example":{"disable_first_message_interruptions":false,"first_message":"Hello, how can I help you today?","language":"en"},"title":"AgentConfigAPIModel","x-fern-type-name":"AgentConfig"},"AgentConfigAPIModelWorkflowOverride-Input":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","anyOf":[{"$ref":"#/components/schemas/DynamicVariablesConfigWorkflowOverride"},{"type":"null"}]},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelWorkflowOverride-Input"},{"type":"null"}]}},"example":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"title":"AgentConfigAPIModelWorkflowOverride"},"AgentConfigAPIModelWorkflowOverride-Output":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"hinglish_mode":{"description":"When enabled and language is Hindi, the agent will respond in Hinglish","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hinglish Mode"},"dynamic_variables":{"description":"Configuration for dynamic variables","anyOf":[{"$ref":"#/components/schemas/DynamicVariablesConfigWorkflowOverride"},{"type":"null"}]},"disable_first_message_interruptions":{"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disable First Message Interruptions"},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"text_behavior_overrides":{"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"propertyNames":{"$ref":"#/components/schemas/ConversationInitiationSource"},"type":"object"},{"type":"null"}],"title":"Text Behavior Overrides"},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelWorkflowOverride-Output"},{"type":"null"}]}},"example":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"title":"AgentConfigAPIModelWorkflowOverride"},"AgentConfigOverride-Input":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelOverride-Input"},{"type":"null"}]}},"example":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"title":"AgentConfigOverride"},"AgentConfigOverride-Output":{"type":"object","properties":{"first_message":{"description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message","x-convai-client-override":true,"x-convai-language-override":true},"language":{"description":"Language of the agent - used for ASR and TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","x-convai-client-override":true},"max_conversation_duration_message":{"description":"If non-empty, the message the agent will send when max conversation duration is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Max Conversation Duration Message","x-convai-client-override":true,"x-convai-language-override":true},"prompt":{"description":"The prompt for the agent","anyOf":[{"$ref":"#/components/schemas/PromptAgentAPIModelOverride-Output"},{"type":"null"}]}},"example":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"title":"AgentConfigOverride"},"AgentConfigOverrideConfig":{"type":"object","properties":{"first_message":{"description":"Whether to allow overriding the first_message field.","type":"boolean","default":false,"title":"First Message"},"language":{"description":"Whether to allow overriding the language field.","type":"boolean","default":false,"title":"Language"},"max_conversation_duration_message":{"description":"Whether to allow overriding the max_conversation_duration_message field.","type":"boolean","default":false,"title":"Max Conversation Duration Message"},"prompt":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/PromptAgentAPIModelOverrideConfig"}},"title":"AgentConfigOverrideConfig"},"AgentDefinitionSource":{"type":"string","default":"unknown","enum":["cli","ui","api","template","unknown"],"title":"AgentDefinitionSource"},"AgentDeploymentPercentageStrategy":{"type":"object","properties":{"type":{"type":"string","default":"percentage","const":"percentage","title":"Type"},"traffic_percentage":{"description":"Traffic percentage to deploy","type":"number","examples":[0.5],"maximum":100,"minimum":0,"title":"Traffic Percentage"}},"required":["traffic_percentage"],"title":"AgentDeploymentPercentageStrategy"},"AgentDeploymentRequest":{"type":"object","properties":{"requests":{"description":"List of deployment requests","type":"array","items":{"$ref":"#/components/schemas/AgentDeploymentRequestItem"},"examples":[[{"branch_id":"agtbrch_8901k4t9z5defmb8vh3e9361y7nj","deployment_strategy":{"traffic_percentage":0.5,"type":"percentage"}}]],"title":"Requests"}},"required":["requests"],"title":"AgentDeploymentRequest"},"AgentDeploymentRequestItem":{"type":"object","properties":{"branch_id":{"description":"ID of the branch to deploy","type":"string","examples":["agtbrch_8901k4t9z5defmb8vh3e9361y7nj"],"title":"Branch Id"},"deployment_strategy":{"$ref":"#/components/schemas/AgentDeploymentPercentageStrategy","discriminator":{"propertyName":"type","mapping":{"percentage":"#/components/schemas/AgentDeploymentPercentageStrategy"}},"title":"Deployment Strategy"}},"required":["branch_id","deployment_strategy"],"title":"AgentDeploymentRequestItem"},"AgentDeploymentResponse":{"type":"object","properties":{"traffic_percentage_branch_id_map":{"description":"Map of branch IDs to traffic percentages","type":"object","additionalProperties":{"type":"number"},"examples":[{"agtbrch_8901k4t9z5defmb8vh3e9361y7nj":0.5}],"title":"Traffic Percentage Branch Id Map"}},"title":"AgentDeploymentResponse"},"AgentFailureResponseExample":{"type":"object","properties":{"response":{"type":"string","title":"Response"},"type":{"type":"string","const":"failure","title":"Type"}},"required":["response","type"],"title":"AgentFailureResponseExample"},"AgentKnowledgeBaseRagChunkResponseModel":{"type":"object","properties":{"document_id":{"description":"ID of the source knowledge base document.","type":"string","title":"Document Id"},"document_name":{"description":"Name of the source knowledge base document.","type":"string","title":"Document Name"},"chunk_id":{"description":"ID of the retrieved chunk.","type":"string","title":"Chunk Id"},"text":{"description":"Text content of the retrieved chunk.","type":"string","title":"Text"},"vector_distance":{"description":"Similarity distance when exposed by the retrieval strategy.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Vector Distance"}},"required":["document_id","document_name","chunk_id","text","vector_distance"],"title":"AgentKnowledgeBaseRagChunkResponseModel"},"AgentKnowledgeBaseRagQueryRequestModel":{"type":"object","properties":{"query":{"description":"Query to run against the agent's knowledge base RAG index.","type":"string","examples":["How do I reset my password?"],"minLength":1,"title":"Query"}},"required":["query"],"title":"AgentKnowledgeBaseRagQueryRequestModel"},"AgentKnowledgeBaseRagQueryResponseModel":{"type":"object","properties":{"retrieval_query":{"description":"Raw query used for retrieval (echoes the request query).","type":"string","title":"Retrieval Query"},"chunks":{"description":"Ranked chunks the agent would retrieve, after distance and length filtering.","type":"array","items":{"$ref":"#/components/schemas/AgentKnowledgeBaseRagChunkResponseModel"},"title":"Chunks"}},"example":{"chunks":[{"chunk_id":"chunk_498cjVigY5qzO86Huf0OWal","document_id":"doc_J3Pbu5gP6NNKBscdCdwB","document_name":"Account FAQ","text":"To reset your password, open Settings and choose Security...","vector_distance":0.21}],"retrieval_query":"How do I reset my password?"},"required":["retrieval_query","chunks"],"title":"AgentKnowledgeBaseRagQueryResponseModel"},"AgentMetadata":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["agent_id"],"title":"AgentMetadata"},"AgentMetadataDBModel":{"type":"object","properties":{"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"updated_at_unix_secs":{"type":"integer","title":"Updated At Unix Secs"},"created_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"},"last_updated_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"}},"required":["created_at_unix_secs","updated_at_unix_secs"],"title":"AgentMetadataDBModel"},"AgentMetadataResponseModel":{"type":"object","properties":{"created_at_unix_secs":{"description":"The creation time of the agent in unix seconds","type":"integer","title":"Created At Unix Secs"},"updated_at_unix_secs":{"description":"The last update time of the agent in unix seconds","type":"integer","title":"Updated At Unix Secs"}},"required":["created_at_unix_secs","updated_at_unix_secs"],"title":"AgentMetadataResponseModel"},"AgentPlatformSettingsRequestModel":{"type":"object","properties":{"evaluation":{"description":"Settings for evaluation","$ref":"#/components/schemas/EvaluationSettings-Input"},"widget":{"description":"Configuration for the widget","$ref":"#/components/schemas/WidgetConfig-Input"},"data_collection":{"description":"Data collection settings","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisProperty"},"title":"Data Collection"},"data_collection_scopes":{"description":"Scope per data collection item ID. Missing keys default to conversation scope.","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisScope"},"title":"Data Collection Scopes"},"analysis_items":{"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.","anyOf":[{"$ref":"#/components/schemas/AgentAnalysisItems-Input"},{"type":"null"}]},"overrides":{"description":"Additional overrides for the agent during conversation initiation","$ref":"#/components/schemas/ConversationInitiationClientDataConfig-Input"},"workspace_overrides":{"description":"Workspace overrides for the agent","$ref":"#/components/schemas/AgentWorkspaceOverrides-Input"},"testing":{"description":"Testing configuration for the agent","$ref":"#/components/schemas/AgentTestingSettings"},"archived":{"description":"Whether the agent is archived","type":"boolean","default":false,"title":"Archived"},"guardrails":{"description":"Guardrails configuration for the agent","$ref":"#/components/schemas/GuardrailsV1-Input","discriminator":{"propertyName":"version","mapping":{"1":"#/components/schemas/GuardrailsV1-Input"}},"title":"Guardrails"},"summary_language":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary Language"},"auto_translate_transcript_to_app_language":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Translate Transcript To App Language"},"auth":{"description":"Settings for authentication","$ref":"#/components/schemas/AuthSettings"},"call_limits":{"description":"Call limits for the agent","$ref":"#/components/schemas/AgentCallLimits"},"privacy":{"description":"Privacy settings for the agent","$ref":"#/components/schemas/PrivacyConfig-Input"},"trust_context":{"description":"The trust context in which the agent operates.","default":"unknown","$ref":"#/components/schemas/AgentTrustContext"},"analysis_llm":{"description":"Default LLM model for post-call analysis (evaluation and data collection)","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM"},"topic_discovery":{"description":"Per-agent topic discovery configuration","$ref":"#/components/schemas/TopicDiscoverySettings"},"sentiment_analysis":{"description":"Per-agent post-call sentiment analysis configuration","$ref":"#/components/schemas/SentimentAnalysisSettings"}},"title":"AgentPlatformSettingsRequestModel"},"AgentPlatformSettingsResponseModel":{"type":"object","properties":{"evaluation":{"description":"Settings for evaluation","$ref":"#/components/schemas/EvaluationSettings-Output"},"widget":{"description":"Configuration for the widget","$ref":"#/components/schemas/WidgetConfig-Output"},"data_collection":{"description":"Data collection settings","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisProperty"},"title":"Data Collection"},"data_collection_scopes":{"description":"Scope per data collection item ID. Missing keys default to conversation scope.","type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisScope"},"title":"Data Collection Scopes"},"analysis_items":{"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.","anyOf":[{"$ref":"#/components/schemas/AgentAnalysisItems-Output"},{"type":"null"}]},"overrides":{"description":"Additional overrides for the agent during conversation initiation","$ref":"#/components/schemas/ConversationInitiationClientDataConfig-Output"},"workspace_overrides":{"description":"Workspace overrides for the agent","$ref":"#/components/schemas/AgentWorkspaceOverrides-Output"},"testing":{"description":"Testing configuration for the agent","$ref":"#/components/schemas/AgentTestingSettings"},"archived":{"description":"Whether the agent is archived","type":"boolean","default":false,"title":"Archived"},"guardrails":{"description":"Guardrails configuration for the agent","$ref":"#/components/schemas/GuardrailsV1-Output","discriminator":{"propertyName":"version","mapping":{"1":"#/components/schemas/GuardrailsV1-Output"}},"title":"Guardrails"},"summary_language":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary Language"},"auto_translate_transcript_to_app_language":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Translate Transcript To App Language"},"auth":{"description":"Settings for authentication","$ref":"#/components/schemas/AuthSettings"},"call_limits":{"description":"Call limits for the agent","$ref":"#/components/schemas/AgentCallLimits"},"privacy":{"description":"Privacy settings for the agent","$ref":"#/components/schemas/PrivacyConfig-Output"},"trust_context":{"description":"The trust context in which the agent operates.","default":"unknown","$ref":"#/components/schemas/AgentTrustContext"},"analysis_llm":{"description":"Default LLM model for post-call analysis (evaluation and data collection)","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM"},"topic_discovery":{"description":"Per-agent topic discovery configuration","$ref":"#/components/schemas/TopicDiscoverySettings"},"sentiment_analysis":{"description":"Per-agent post-call sentiment analysis configuration","$ref":"#/components/schemas/SentimentAnalysisSettings"},"safety":{"$ref":"#/components/schemas/SafetyResponseModel"}},"title":"AgentPlatformSettingsResponseModel"},"AgentSimulatedChatTestResponseModel":{"type":"object","properties":{"simulated_conversation":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModel"},"title":"Simulated Conversation"},"analysis":{"$ref":"#/components/schemas/ConversationHistoryAnalysisCommonModel"}},"required":["simulated_conversation","analysis"],"title":"AgentSimulatedChatTestResponseModel"},"AgentSortBy":{"type":"string","enum":["name","created_at","call_count_7d"],"title":"AgentSortBy"},"AgentSuccessfulResponseExample":{"type":"object","properties":{"response":{"type":"string","title":"Response"},"type":{"type":"string","const":"success","title":"Type"}},"required":["response","type"],"title":"AgentSuccessfulResponseExample"},"AgentSummaryBatchSuccessfulResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"success","const":"success","title":"Status"},"data":{"$ref":"#/components/schemas/AgentSummaryResponseModel"}},"required":["status","data"],"title":"AgentSummaryBatchSuccessfulResponseModel"},"AgentSummaryResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"name":{"description":"The name of the agent","type":"string","title":"Name"},"tags":{"description":"Agent tags used to categorize the agent","type":"array","items":{"type":"string"},"title":"Tags"},"created_at_unix_secs":{"description":"The creation time of the agent in unix seconds","type":"integer","title":"Created At Unix Secs"},"access_info":{"description":"The access information of the agent","$ref":"#/components/schemas/ResourceAccessInfo"},"last_call_time_unix_secs":{"description":"The time of the most recent call in unix seconds, null if no calls have been made","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Call Time Unix Secs"},"archived":{"description":"Whether the agent is archived","type":"boolean","default":false,"title":"Archived"}},"example":{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"agent_id":"J3Pbu5gP6NNKBscdCdwB","archived":false,"created_at_unix_secs":1716153600,"last_call_time_unix_secs":1716240000,"name":"My Agent","tags":["Customer Support","Technical Help","Eleven"]},"required":["agent_id","name","tags","created_at_unix_secs","access_info"],"title":"AgentSummaryResponseModel"},"AgentTestEntityType":{"type":"string","default":"test","enum":["test","folder"],"title":"AgentTestEntityType"},"AgentTestFolderPathSegmentResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","default":"","title":"Name"}},"required":["id"],"title":"AgentTestFolderPathSegmentResponseModel"},"AgentTestingSettings":{"description":"Settings for agent testing configuration.","type":"object","properties":{"attached_tests":{"description":"List of test IDs that should be run for this agent","type":"array","items":{"$ref":"#/components/schemas/AttachedTestModel"},"maxItems":5000,"minItems":0,"title":"Attached Tests"}},"example":{"attached_tests":[{"environment":"staging","test_id":"test_123","workflow_node_id":"node_abc"},{"test_id":"test_456"}],"referenced_tests_ids":["test_123","test_456"]},"title":"AgentTestingSettings"},"AgentTopicResponseModel":{"type":"object","properties":{"topic_id":{"type":"string","title":"Topic Id"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"conversation_count":{"type":"integer","title":"Conversation Count"},"parent_topic_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Topic Id"},"x_2d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"X 2D"},"y_2d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Y 2D"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/TopicMetricsAggregate"},{"type":"null"}]}},"required":["topic_id","label","description","conversation_count"],"title":"AgentTopicResponseModel"},"AgentTransfer-Input":{"type":"object","properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Id"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"is_workflow_node_transfer":{"type":"boolean","default":false,"title":"Is Workflow Node Transfer"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["condition"],"title":"AgentTransfer"},"AgentTransfer-Output":{"type":"object","properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Id"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"is_workflow_node_transfer":{"type":"boolean","default":false,"title":"Is Workflow Node Transfer"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["condition"],"title":"AgentTransfer"},"AgentTransferOp":{"discriminator":{"propertyName":"type","mapping":{"pop":"#/components/schemas/AgentTransferOpPop","push":"#/components/schemas/AgentTransferOpPush","replace":"#/components/schemas/AgentTransferOpReplace"}},"oneOf":[{"$ref":"#/components/schemas/AgentTransferOpReplace"},{"$ref":"#/components/schemas/AgentTransferOpPush"},{"$ref":"#/components/schemas/AgentTransferOpPop"}]},"AgentTransferOpPop":{"type":"object","properties":{"type":{"type":"string","default":"pop","const":"pop","title":"Type"}},"title":"AgentTransferOpPop"},"AgentTransferOpPush":{"type":"object","properties":{"type":{"type":"string","default":"push","const":"push","title":"Type"},"return_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Node Id"}},"title":"AgentTransferOpPush"},"AgentTransferOpReplace":{"type":"object","properties":{"type":{"type":"string","default":"replace","const":"replace","title":"Type"}},"title":"AgentTransferOpReplace"},"AgentTrustContext":{"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.","type":"string","default":"unknown","enum":["unknown","low","high"],"title":"AgentTrustContext"},"AgentVersionMetadata":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"type":"string","title":"Branch Id"},"version_description":{"type":"string","title":"Version Description"},"seq_no_in_branch":{"type":"integer","title":"Seq No In Branch"},"time_committed_secs":{"type":"integer","title":"Time Committed Secs"},"parents":{"$ref":"#/components/schemas/AgentVersionParents"},"access_info":{"anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]}},"required":["id","agent_id","branch_id","version_description","seq_no_in_branch","time_committed_secs","parents"],"title":"AgentVersionMetadata"},"AgentVersionParents":{"type":"object","properties":{"in_branch_parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Branch Parent Id"},"out_of_branch_parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Out Of Branch Parent Id"},"merged_into_branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merged Into Branch Id"},"merged_from_branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merged From Branch Id"},"merged_from_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merged From Version Id"},"rebased_from_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rebased From Version Id"}},"title":"AgentVersionParents"},"AgentWorkflowRequestModel":{"type":"object","properties":{"edges":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkflowEdgeModel-Input"},"title":"Edges"},"nodes":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/WorkflowStartNodeModel-Input","description":"Entry point of the workflow."},{"$ref":"#/components/schemas/WorkflowEndNodeModel-Input","description":"Terminates the conversation upon reaching this node."},{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModel-Input","description":"Transfers the conversation to a phone number."},{"$ref":"#/components/schemas/WorkflowOverrideAgentNodeModel-Input","description":"A subagent conducting the conversation until one of the exit conditions is met. Each subagent can override the base settings, changing the prompt, knowledge base, and more."},{"$ref":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Input","description":"Transfer the conversation to a standalone agent."},{"$ref":"#/components/schemas/WorkflowToolNodeModel-Input","description":"Executes one or more tools in parallel."}],"discriminator":{"propertyName":"type","mapping":{"end":"#/components/schemas/WorkflowEndNodeModel-Input","override_agent":"#/components/schemas/WorkflowOverrideAgentNodeModel-Input","phone_number":"#/components/schemas/WorkflowPhoneNumberNodeModel-Input","standalone_agent":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Input","start":"#/components/schemas/WorkflowStartNodeModel-Input","tool":"#/components/schemas/WorkflowToolNodeModel-Input"}}},"minProperties":1,"title":"Nodes"},"prevent_subagent_loops":{"description":"Whether to prevent loops in the workflow execution.","type":"boolean","default":false,"title":"Prevent Subagent Loops"}},"example":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer"},{"prompt":"Phone condition","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode"},"right":{"value":"dev"}}]}},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"conversation_config":{},"edge_order":["entry_to_tool_a"],"label":"Entry"},"failure_node":{"conversation_config":{},"label":"Failure"},"start_node":{"edge_order":["start_to_entry"]},"success_conversation":{"conversation_config":{},"label":"Success A"},"success_end":{},"success_phone":{"transfer_destination":{"phone_number":"+1234567890"}},"success_transfer":{"agent_id":"success_transfer_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}]},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"tools":[{"tool_id":"tool_a"}]}}},"title":"AgentWorkflowRequestModel"},"AgentWorkflowResponseModel":{"type":"object","properties":{"edges":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkflowEdgeModel-Output"},"title":"Edges"},"nodes":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/WorkflowStartNodeModel-Output","description":"Entry point of the workflow."},{"$ref":"#/components/schemas/WorkflowEndNodeModel-Output","description":"Terminates the conversation upon reaching this node."},{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModel-Output","description":"Transfers the conversation to a phone number."},{"$ref":"#/components/schemas/WorkflowOverrideAgentNodeModel-Output","description":"A subagent conducting the conversation until one of the exit conditions is met. Each subagent can override the base settings, changing the prompt, knowledge base, and more."},{"$ref":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Output","description":"Transfer the conversation to a standalone agent."},{"$ref":"#/components/schemas/WorkflowToolNodeModel-Output","description":"Executes one or more tools in parallel."}],"discriminator":{"propertyName":"type","mapping":{"end":"#/components/schemas/WorkflowEndNodeModel-Output","override_agent":"#/components/schemas/WorkflowOverrideAgentNodeModel-Output","phone_number":"#/components/schemas/WorkflowPhoneNumberNodeModel-Output","standalone_agent":"#/components/schemas/WorkflowStandaloneAgentNodeModel-Output","start":"#/components/schemas/WorkflowStartNodeModel-Output","tool":"#/components/schemas/WorkflowToolNodeModel-Output"}}},"minProperties":1,"title":"Nodes"},"prevent_subagent_loops":{"description":"Whether to prevent loops in the workflow execution.","type":"boolean","default":false,"title":"Prevent Subagent Loops"}},"example":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition","type":"llm"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{"type":"unconditional"},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false,"type":"result"},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true,"type":"result"},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{"type":"unconditional"},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition","type":"llm"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition","type":"llm"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer","type":"dynamic_variable"},{"prompt":"Phone condition","type":"llm","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode","type":"dynamic_variable"},"right":{"type":"string_literal","value":"dev"},"type":"eq_operator"}],"type":"or_operator"},"type":"expression"},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":["entry_to_tool_a"],"entry_behavior":"auto","label":"Entry","position":{"x":0,"y":0},"type":"override_agent"},"failure_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Failure","position":{"x":0,"y":0},"type":"override_agent"},"start_node":{"edge_order":["start_to_entry"],"position":{"x":0,"y":0},"type":"start"},"success_conversation":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Success A","position":{"x":0,"y":0},"type":"override_agent"},"success_end":{"edge_order":[],"position":{"x":0,"y":0},"return_when_nested":true,"type":"end"},"success_phone":{"custom_sip_headers":[],"edge_order":[],"position":{"x":0,"y":0},"require_acceptance":false,"transfer_destination":{"phone_number":"+1234567890","type":"phone"},"transfer_type":"conference","type":"phone_number"},"success_transfer":{"agent_id":"success_transfer_agent","delay_ms":0,"edge_order":[],"enable_nesting":false,"enable_transferred_agent_first_message":false,"position":{"x":0,"y":0},"preserve_client_tts_overrides":false,"type":"standalone_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}],"type":"tool"},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"}],"type":"tool"}},"prevent_subagent_loops":false},"required":["edges","nodes","prevent_subagent_loops"],"title":"AgentWorkflowResponseModel"},"AgentWorkspaceOverrides-Input":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"description":"The webhook to send conversation initiation client data to","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"}},"title":"AgentWorkspaceOverrides"},"AgentWorkspaceOverrides-Output":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"description":"The webhook to send conversation initiation client data to","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"}},"title":"AgentWorkspaceOverrides"},"AlertingMonitorConfig":{"type":"object","properties":{"threshold":{"description":"Failure rate threshold at which this monitor can notify.","anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Threshold"},"auto_resolve_after_inactive_minutes":{"description":"How many minutes an alert can stay inactive before it is auto-resolved.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Auto Resolve After Inactive Minutes"}},"title":"AlertingMonitorConfig"},"AlertingSettings":{"description":"Alerting configuration used at both per-agent and per-workspace level.\n\nAll fields are optional overrides; the cascade resolver fills in defaults\nwhen they are unset. Notifiers stack and dedupe (by webhook_id) across the\nworkspace and agent layers rather than overriding each other.\n\nCascade order for per-monitor threshold and auto-resolve: agent → workspace →\nsystem default.","type":"object","properties":{"monitor_configs":{"description":"Alerting configuration keyed by monitor name.","type":"object","additionalProperties":{"$ref":"#/components/schemas/AlertingMonitorConfig"},"title":"Monitor Configs"},"auto_resolve_after_inactive_minutes":{"description":"How many minutes an alert can stay inactive before it is auto-resolved. Unset values fall through to the next layer.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Auto Resolve After Inactive Minutes"},"notifiers":{"description":"Delivery channels for alert lifecycle notifications. Stacked and deduped by webhook_id with other layers.","type":"array","items":{"$ref":"#/components/schemas/AlertingWebhookNotifier"},"maxItems":10,"title":"Notifiers"}},"title":"AlertingSettings"},"AlertingSettingsResponse":{"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.","type":"object","properties":{"monitor_configs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AlertingMonitorConfig"},"title":"Monitor Configs"},"auto_resolve_after_inactive_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Auto Resolve After Inactive Minutes"},"notifiers":{"type":"array","items":{"$ref":"#/components/schemas/AlertingWebhookNotifierResponse"},"title":"Notifiers"}},"title":"AlertingSettingsResponse"},"AlertingWebhookHeader":{"type":"object","properties":{"name":{"type":"string","maxLength":256,"title":"Name"},"is_secret":{"type":"boolean","default":false,"title":"Is Secret"},"value":{"description":"Header value. May be null only for a secret header on update.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"}},"required":["name"],"title":"AlertingWebhookHeader"},"AlertingWebhookMethod":{"type":"string","default":"POST","enum":["POST","PUT"],"title":"AlertingWebhookMethod"},"AlertingWebhookNotifier":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"webhook_id":{"description":"ID of the workspace webhook to deliver alert lifecycle notifications to.","type":"string","title":"Webhook Id"}},"required":["webhook_id"],"title":"AlertingWebhookNotifier"},"AlertingWebhookNotifierResponse":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"webhook_id":{"type":"string","title":"Webhook Id"}},"required":["webhook_id"],"title":"AlertingWebhookNotifierResponse"},"AllowedOutputFormats":{"type":"string","enum":["mp3_22050_32","mp3_24000_48","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000","ulaw_8000","alaw_8000","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192"]},"AllowlistItem":{"type":"object","properties":{"hostname":{"description":"The hostname of the allowed origin","type":"string","title":"Hostname"}},"required":["hostname"],"title":"AllowlistItem"},"AnalysisProperty":{"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.","type":"object","properties":{"type":{"type":"string","enum":["boolean","string","integer","number"],"title":"Type"},"description":{"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.","type":"string","default":"","title":"Description"},"enum":{"description":"List of allowed string values for string type parameters","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum"},"is_system_provided":{"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.","type":"boolean","default":false,"title":"Is System Provided"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"allowed_values_dynamic_variable":{"description":"When set, the LLM provides the value but the runtime rejects any value not present in the list held by this dynamic variable. 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.","type":"string","default":"","title":"Allowed Values Dynamic Variable"},"constant_value":{"description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted.","default":"","anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}],"title":"Constant Value"},"is_omitted":{"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.","type":"boolean","default":false,"title":"Is Omitted"},"llm":{"description":"LLM model to use for this analysis item. If not set, uses agent's analysis_llm default.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]}},"example":{"constant_value":"","description":"My property","dynamic_variable":"","is_system_provided":false,"type":"string"},"required":["type"],"title":"AnalysisProperty"},"AnalysisScope":{"type":"string","default":"conversation","enum":["conversation","agent"],"title":"AnalysisScope"},"ApiIntegrationOAuth2AuthCodeResponse":{"description":"Response model for integration-managed OAuth2 Auth Code auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"api_integration_oauth2_auth_code","const":"api_integration_oauth2_auth_code","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"title":"Scopes"},"scope_separator":{"description":"Separator for scopes","type":"string","default":" ","enum":[" ",","],"title":"Scope Separator","x-fern-enum":{" ":{"name":"space"},",":{"name":"comma"}}},"expires_at":{"description":"ISO 8601 timestamp of when the access token expires","type":"string","title":"Expires At"},"integration_id":{"type":"string","title":"Integration Id"},"credential_id":{"type":"string","title":"Credential Id"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","token_url","expires_at","integration_id","credential_id","id"],"title":"ApiIntegrationOAuth2AuthCodeResponse"},"ApiIntegrationOAuth2CustomAppResponse":{"description":"Response model for user-owned OAuth2 Custom App auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"api_integration_oauth2_custom_app","const":"api_integration_oauth2_custom_app","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"title":"Scopes"},"scope_separator":{"description":"Separator for scopes","type":"string","default":" ","enum":[" ",","],"title":"Scope Separator","x-fern-enum":{" ":{"name":"space"},",":{"name":"comma"}}},"expires_at":{"description":"ISO 8601 timestamp of when the access token expires","type":"string","title":"Expires At"},"integration_id":{"type":"string","title":"Integration Id"},"credential_id":{"type":"string","title":"Credential Id"},"client_id":{"description":"OAuth client ID (rendered from template if credential uses templated credentials, None for legacy connections)","type":"string","title":"Client Id"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","token_url","expires_at","integration_id","credential_id","client_id","id"],"title":"ApiIntegrationOAuth2CustomAppResponse"},"ApiIntegrationWebhookOverrides":{"description":"A whitelist of fields that can be overridden by users when\nconfiguring an API Integration Webhook Tool.","type":"object","properties":{"schema_overrides":{"anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Schema Overrides"},"request_headers":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"}]},"type":"object"},{"type":"null"}],"title":"Request Headers"},"response_filter_mode":{"anyOf":[{"$ref":"#/components/schemas/ResponseFilterMode"},{"type":"null"}]},"response_filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Response Filters"}},"title":"ApiIntegrationWebhookOverrides"},"ApiIntegrationWebhookToolConfig-Input":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"tool_version":{"description":"The version of the API integration tool","type":"string","default":"1.0.0","title":"Tool Version"},"api_integration_id":{"type":"string","title":"Api Integration Id"},"api_integration_connection_id":{"type":"string","title":"Api Integration Connection Id"},"api_schema_overrides":{"description":"User overrides applied on top of the base api_schema","anyOf":[{"$ref":"#/components/schemas/ApiIntegrationWebhookOverrides"},{"type":"null"}]}},"required":["name","description","api_integration_id","api_integration_connection_id"],"title":"ApiIntegrationWebhookToolConfig"},"ApiIntegrationWebhookToolConfig-Output":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"tool_version":{"description":"The version of the API integration tool","type":"string","default":"1.0.0","title":"Tool Version"},"api_integration_id":{"type":"string","title":"Api Integration Id"},"api_integration_connection_id":{"type":"string","title":"Api Integration Connection Id"},"api_schema_overrides":{"description":"User overrides applied on top of the base api_schema","anyOf":[{"$ref":"#/components/schemas/ApiIntegrationWebhookOverrides"},{"type":"null"}]}},"required":["type","name","description","response_timeout_secs","disable_interruptions","interruption_mode","force_pre_tool_speech","pre_tool_speech","assignments","tool_call_sound","tool_call_sound_behavior","tool_error_handling_mode","dynamic_variables","execution_mode","tool_version","api_integration_id","api_integration_connection_id","api_schema_overrides"],"title":"ApiIntegrationWebhookToolConfig"},"ArrayJsonSchemaProperty-Input":{"type":"object","properties":{"property_kind":{"type":"string","default":"array","enum":["array","object"],"title":"Property Kind"},"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"description":"When set, the entire array uses this constant value at runtime. Mutually exclusive with description (LLM-provided array), dynamic_variable, and is_omitted.","anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"array","const":"array","title":"Type"},"items":{"description":"Schema for array elements.","default":{"type":"string","description":"Array element","is_system_provided":false,"dynamic_variable":"","allowed_values_dynamic_variable":"","constant_value":"","is_omitted":false},"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Input"}],"title":"Items"}},"additionalProperties":false,"title":"ArrayJsonSchemaProperty"},"ArrayJsonSchemaProperty-Output":{"type":"object","properties":{"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"description":"When set, the entire array uses this constant value at runtime. Mutually exclusive with description (LLM-provided array), dynamic_variable, and is_omitted.","anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"array","const":"array","title":"Type"},"items":{"description":"Schema for array elements.","default":{"type":"string","description":"Array element","is_system_provided":false,"dynamic_variable":"","allowed_values_dynamic_variable":"","constant_value":"","is_omitted":false},"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Output"}],"title":"Items"}},"additionalProperties":false,"title":"ArrayJsonSchemaProperty"},"AssetTranscription":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/AssetTranscriptionData"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"AssetTranscription"},"AssetTranscriptionData":{"type":"object","properties":{"language_code":{"type":"string","title":"Language Code"},"text":{"type":"string","title":"Text"},"words":{"type":"array","items":{"type":"string"},"title":"Words"},"word_start_times_ms":{"type":"array","items":{"type":"integer"},"title":"Word Start Times Ms"},"word_end_times_ms":{"type":"array","items":{"type":"integer"},"title":"Word End Times Ms"},"word_speaker_ids":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":"Word Speaker Ids"}},"required":["language_code","text","words","word_start_times_ms","word_end_times_ms","word_speaker_ids"],"title":"AssetTranscriptionData"},"AssignConversationTagsRequestModel":{"type":"object","properties":{"tag_ids":{"description":"Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op.","type":"array","items":{"type":"string"},"maxItems":50,"minItems":1,"title":"Tag Ids"}},"required":["tag_ids"],"title":"AssignConversationTagsRequestModel"},"AsyncConversationMetadata":{"description":"Metadata for async conversation delivery (Zendesk, Slack, etc.).","type":"object","properties":{"delivery_status":{"type":"string","enum":["pending","success","failed"],"title":"Delivery Status"},"delivery_timestamp":{"type":"integer","title":"Delivery Timestamp"},"delivery_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Error"},"external_system":{"type":"string","title":"External System"},"external_id":{"type":"string","title":"External Id"},"external_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Link"},"retry_count":{"type":"integer","default":0,"title":"Retry Count"},"last_retry_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Retry Timestamp"},"last_processed_external_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Processed External Message Id"}},"required":["delivery_status","delivery_timestamp","external_system","external_id"],"title":"AsyncConversationMetadata"},"AttachedSystemDataCollectionRef":{"type":"object","properties":{"source":{"type":"string","const":"system","title":"Source"},"analysis_item_id":{"description":"Id of the referenced built-in system data-collection item.","type":"string","const":"__system_data_collection_topic","title":"Analysis Item Id"},"scope":{"description":"Transcript context ('conversation' or 'agent') used when running this item.","default":"conversation","$ref":"#/components/schemas/AnalysisScope"}},"required":["source","analysis_item_id"],"title":"AttachedSystemDataCollectionRef"},"AttachedSystemEvaluationRef":{"type":"object","properties":{"source":{"type":"string","const":"system","title":"Source"},"analysis_item_id":{"description":"Id of the referenced built-in system evaluation.","type":"string","enum":["__system_eval_criteria_sentiment","__system_eval_criteria_frustration"],"title":"Analysis Item Id"},"scope":{"description":"Transcript context ('conversation' or 'agent') used when running this item.","default":"conversation","$ref":"#/components/schemas/AnalysisScope"},"weight":{"description":"Optional relative weight for aggregate scoring.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Weight"}},"required":["source","analysis_item_id"],"title":"AttachedSystemEvaluationRef"},"AttachedTestModel":{"type":"object","properties":{"test_id":{"type":"string","title":"Test Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"}},"required":["test_id"],"title":"AttachedTestModel"},"AttachedUserDataCollectionRef":{"type":"object","properties":{"source":{"type":"string","const":"user","title":"Source"},"analysis_item_id":{"description":"Id of the referenced user data-collection item.","type":"string","title":"Analysis Item Id"},"version_id":{"description":"Pinned item version. None tracks the item's latest published version.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"scope":{"description":"Transcript context ('conversation' or 'agent') used when running this item.","default":"conversation","$ref":"#/components/schemas/AnalysisScope"}},"required":["source","analysis_item_id"],"title":"AttachedUserDataCollectionRef"},"AttachedUserEvaluationRef":{"type":"object","properties":{"source":{"type":"string","const":"user","title":"Source"},"analysis_item_id":{"description":"Id of the referenced user evaluation item.","type":"string","title":"Analysis Item Id"},"version_id":{"description":"Primary item version whose result feeds scoring. None tracks the item's latest published version.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"additional_version_ids":{"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.","type":"array","items":{"type":"string"},"title":"Additional Version Ids"},"scope":{"description":"Transcript context ('conversation' or 'agent') used when running this item.","default":"conversation","$ref":"#/components/schemas/AnalysisScope"},"weight":{"description":"Optional relative weight for aggregate scoring.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Weight"}},"required":["source","analysis_item_id"],"title":"AttachedUserEvaluationRef"},"AudioAnalysis":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/AudioAnalysisResult"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"AudioAnalysis"},"AudioAnalysisResult":{"type":"object","properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"overall_pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overall Pacing"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/AudioSegment"},"title":"Segments"},"key_moments":{"type":"array","items":{"$ref":"#/components/schemas/AudioKeyMoment"},"title":"Key Moments"}},"required":["title","description"],"title":"AudioAnalysisResult"},"AudioFilterId":{"description":"Identifiers for audio voice filters.","type":"string","enum":["phone","low_quality_phone","bright_phone"],"title":"AudioFilterId"},"AudioFormat":{"type":"string","default":"audio/pcm","enum":["audio/pcm","audio/pcmu","audio/pcma"],"title":"AudioFormat","x-fern-type-name":"OpenAIAudioFormat"},"AudioIsolationHistoryItemResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"format":{"type":"string","title":"Format"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"source_video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Video Url"},"supports_video":{"type":"boolean","title":"Supports Video"},"processing":{"type":"boolean","title":"Processing"},"video_processing_failed":{"type":"boolean","title":"Video Processing Failed"},"preview_b64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview B64"}},"required":["id","title","created_at_unix","format","duration_seconds","download_url","icon_url","source_video_url","supports_video","processing","video_processing_failed","preview_b64"],"title":"AudioIsolationHistoryItemResponseModel"},"AudioKeyMoment":{"type":"object","properties":{"timestamp_ms":{"type":"integer","title":"Timestamp Ms"},"type":{"type":"string","title":"Type"},"description":{"type":"string","title":"Description"}},"required":["timestamp_ms","type","description"],"title":"AudioKeyMoment"},"AudioNativeCreateProjectResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the created Audio Native project.","type":"string","title":"Project Id"},"converting":{"description":"Whether the project is currently being converted.","type":"boolean","title":"Converting"},"html_snippet":{"description":"The HTML snippet to embed the Audio Native player.","type":"string","title":"Html Snippet"}},"example":{"converting":false,"html_snippet":"","project_id":"JBFqnCBsd6RMkjVDRZzb"},"required":["project_id","converting","html_snippet"],"title":"AudioNativeCreateProjectResponseModel","x-fern-type-name":"AudioNativeCreateProjectResponseModel"},"AudioNativeEditContentResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"converting":{"description":"Whether the project is currently being converted.","type":"boolean","title":"Converting"},"publishing":{"description":"Whether the project is currently being published.","type":"boolean","title":"Publishing"},"html_snippet":{"description":"The HTML snippet to embed the Audio Native player.","type":"string","title":"Html Snippet"}},"example":{"converting":false,"html_snippet":"","project_id":"JBFqnCBsd6RMkjVDRZzb","publishing":false},"required":["project_id","converting","publishing","html_snippet"],"title":"AudioNativeEditContentResponseModel"},"AudioNativeProjectSettingsResponseModel":{"type":"object","properties":{"title":{"description":"The title of the project.","type":"string","title":"Title"},"image":{"description":"The image of the project.","type":"string","title":"Image"},"author":{"description":"The author of the project.","type":"string","title":"Author"},"small":{"description":"Whether the project is small.","type":"boolean","title":"Small"},"text_color":{"description":"The text color of the project.","type":"string","title":"Text Color"},"background_color":{"description":"The background color of the project.","type":"string","title":"Background Color"},"sessionization":{"description":"The sessionization of the project. Specifies for how many minutes to persist the session across page reloads.","type":"integer","title":"Sessionization"},"audio_path":{"description":"The path of the audio file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Path"},"audio_url":{"description":"The URL of the audio file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"},"status":{"description":"Current state of the project","type":"string","default":"ready","enum":["processing","ready"],"title":"Status"}},"example":{"audio_path":"audio/my_project.mp3","audio_url":"https://example.com/audio/my_project.mp3","author":"John Doe","background_color":"#FFFFFF","image":"https://example.com/image.jpg","sessionization":1,"small":false,"status":"ready","text_color":"#000000","title":"My Project"},"required":["title","image","author","small","text_color","background_color","sessionization"],"title":"AudioNativeProjectSettingsResponseModel"},"AudioRefChunk":{"type":"object","properties":{"song_id":{"description":"The ID of the song to source the chunk from. You can find the song ID in the response headers when you generate a song.","type":"string","maxLength":100,"minLength":1,"title":"Song Id"},"range":{"description":"The time range to extract from the song.","$ref":"#/components/schemas/TimeRange"}},"required":["song_id","range"],"title":"AudioRefChunk"},"AudioSegment":{"type":"object","properties":{"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"},"description":{"type":"string","title":"Description"},"segment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Type"},"has_speech":{"type":"boolean","default":false,"title":"Has Speech"},"has_music":{"type":"boolean","default":false,"title":"Has Music"},"pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pacing"}},"required":["start_ms","end_ms","description"],"title":"AudioSegment"},"AudioWithTimestampsAndVoiceSegmentsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"voice_segments":{"description":"Voice segments for the audio","type":"array","items":{"$ref":"#/components/schemas/VoiceSegment"},"title":"Voice Segments"}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5,0.6,0.7],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4,0.5,0.6],"characters":["H","e","l","l","o","H","i"]},"audio_base64":"base64_encoded_audio_string","normalized_alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5,0.6,0.7],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4,0.5,0.6],"characters":["H","e","l","l","o","H","i"]},"voice_segments":[{"character_end_index":5,"character_start_index":0,"dialogue_input_index":0,"end_time_seconds":0.5,"start_time_seconds":0,"voice_id":"21m00Tcm4TlvDq8ikWAM"},{"character_end_index":7,"character_start_index":5,"dialogue_input_index":1,"end_time_seconds":0.7,"start_time_seconds":0.5,"voice_id":"VEDscrYI8uIMttlO2Ztu"}]},"required":["audio_base64","voice_segments"],"title":"AudioWithTimestampsAndVoiceSegmentsResponseModel"},"AudioWithTimestampsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4],"characters":["H","e","l","l","o"]},"audio_base64":"base64_encoded_audio_string","normalized_alignment":{"character_end_times_seconds":[0.1,0.2,0.3,0.4,0.5],"character_start_times_seconds":[0,0.1,0.2,0.3,0.4],"characters":["H","e","l","l","o"]}},"required":["audio_base64"],"title":"AudioWithTimestampsResponseModel","x-fern-type-name":"AudioWithTimestampsResponse"},"AuthConnectionDependencies":{"description":"Dependencies that use an auth connection","type":"object","properties":{"tools":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableToolIdentifier"},{"$ref":"#/components/schemas/DependentUnknownToolIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableToolIdentifier","unknown":"#/components/schemas/DependentUnknownToolIdentifier"}}},"default":[],"title":"Tools"},"mcp_servers":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableMCPServerIdentifier"},{"$ref":"#/components/schemas/DependentUnknownMCPServerIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableMCPServerIdentifier","unknown":"#/components/schemas/DependentUnknownMCPServerIdentifier"}}},"default":[],"title":"Mcp Servers"},"integration_connections":{"type":"array","items":{"$ref":"#/components/schemas/DependentIntegrationConnectionIdentifier"},"default":[],"title":"Integration Connections"}},"title":"AuthConnectionDependencies"},"AuthConnectionLocator":{"description":"Used to reference an auth connection from the workspace's auth connection store.","type":"object","properties":{"auth_connection_id":{"type":"string","title":"Auth Connection Id"}},"required":["auth_connection_id"],"title":"AuthConnectionLocator"},"AuthConnectionStatus":{"description":"Single status field shared by every auth type's stored credential.\n\nOAuth values (``REFRESH_FAILED``, ``REVOKED``) are written by the OAuth\ntoken-manager refresh path. ``CREDENTIAL_INVALID`` is written by the\ntool execution path when an upstream response matches a credential's\n``failure_signatures`` entry (Bearer, Basic auth, etc.).","type":"string","default":"active","enum":["active","refresh_failed","revoked","credential_invalid"],"title":"AuthConnectionStatus"},"AuthSettings":{"type":"object","properties":{"enable_auth":{"description":"If set to true, starting a conversation with an agent will require a signed token","type":"boolean","default":false,"title":"Enable Auth"},"allowlist":{"description":"A list of hosts that are allowed to start conversations with the agent","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Allowlist"},"require_origin_header":{"description":"When enabled, connections with no origin header will be rejected. If the allowlist is empty, this option has no effect.","type":"boolean","default":false,"title":"Require Origin Header"},"shareable_token":{"description":"A shareable token that can be used to start a conversation with the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Token"}},"example":{"allowlist":[{"hostname":"https://example.com"}],"enable_auth":true,"require_origin_header":true,"shareable_token":"1234567890"},"title":"AuthSettings"},"AuthenticationActivityId":{"description":"OCSF Activity IDs for Authentication [3002] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/authentication","type":"integer","enum":[0,1,2,3,4,5,6,7,99],"title":"AuthenticationActivityId"},"AuthorizationMethod":{"type":"string","default":"public","enum":["invalid","public","authorization_header","signed_url","shareable_link","livekit_token","livekit_token_website","genesys_api_key","whatsapp","sms"],"title":"AuthorizationMethod"},"AutoGenerationMetadata":{"description":"Metadata for an automatically generated simulation test.\n\nTracks the origin and context of tests that were auto-generated from\nconversations, including the source conversation, topic, and evaluation\ncriteria the test covers.","type":"object","properties":{"agent_id":{"description":"Agent whose simulation library this test belongs to.","type":"string","title":"Agent Id"},"stable_topic_id":{"description":"Stable topic id (from topic discovery) this test covers.","type":"string","title":"Stable Topic Id"},"criteria_id":{"description":"Evaluation criterion id this test targets.","type":"string","title":"Criteria Id"},"topic_label":{"description":"Human-readable topic label at generation time.","type":"string","title":"Topic Label"},"source_conversation_id":{"description":"Conversation the test was generated from.","type":"string","title":"Source Conversation Id"},"generated_at_unix":{"description":"Unix timestamp (seconds) when the test was generated.","type":"integer","title":"Generated At Unix"}},"required":["agent_id","stable_topic_id","criteria_id","topic_label","source_conversation_id","generated_at_unix"],"title":"AutoGenerationMetadata"},"AutoSyncInfo":{"type":"object","properties":{"minimum_frequency_days":{"description":"Maximum number of days between automatic syncs","type":"integer","default":7,"maximum":180,"minimum":1,"title":"Minimum Frequency Days"},"auto_remove":{"description":"Whether to remove the document if the URL becomes unavailable","type":"boolean","default":false,"title":"Auto Remove"},"consec_failures":{"description":"Number of consecutive sync failures","type":"integer","default":0,"minimum":0,"title":"Consec Failures"},"next_refresh_by":{"description":"Unix timestamp for the next scheduled sync or None (in case of folders)","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Refresh By"}},"title":"AutoSyncInfo"},"BackgroundSoundConfig":{"type":"object","properties":{"source_type":{"description":"The type of background sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundSourceType"},{"type":"null"}]},"source_id":{"description":"Identifier for the sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundPresetId"},{"type":"null"}]},"volume":{"description":"Volume level for background sound (0.01 to 1.0).","type":"number","default":0.6,"maximum":1,"minimum":0.01,"title":"Volume"},"crossfade_loop":{"description":"Apply a crossfade at the loop boundary to avoid audible pops when the sound loops.","type":"boolean","default":false,"title":"Crossfade Loop"}},"title":"BackgroundSoundConfig"},"BackgroundSoundConfigWorkflowOverride":{"type":"object","properties":{"source_type":{"description":"The type of background sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundSourceType"},{"type":"null"}]},"source_id":{"description":"Identifier for the sound source.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundPresetId"},{"type":"null"}]},"volume":{"description":"Volume level for background sound (0.01 to 1.0).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Volume"},"crossfade_loop":{"description":"Apply a crossfade at the loop boundary to avoid audible pops when the sound loops.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Crossfade Loop"}},"title":"BackgroundSoundConfigWorkflowOverride"},"BackgroundSoundPresetId":{"description":"Predefined background sound preset identifiers.","type":"string","enum":["office2","office1","restaurant","city","typing","elevator1","elevator2","elevator3","elevator4"],"title":"BackgroundSoundPresetId"},"BackgroundSoundSourceType":{"description":"The type of background sound source.","type":"string","enum":["preset"],"title":"BackgroundSoundSourceType"},"BackupLLMDefault":{"type":"object","properties":{"preference":{"type":"string","default":"default","const":"default","title":"Preference"}},"title":"BackupLLMDefault"},"BackupLLMDisabled":{"type":"object","properties":{"preference":{"type":"string","default":"disabled","const":"disabled","title":"Preference"}},"title":"BackupLLMDisabled"},"BackupLLMOverride":{"type":"object","properties":{"preference":{"type":"string","default":"override","const":"override","title":"Preference"},"order":{"type":"array","items":{"$ref":"#/components/schemas/LLM"},"title":"Order"}},"required":["order"],"title":"BackupLLMOverride"},"BaseTurnConfig":{"type":"object","properties":{"turn_timeout":{"description":"Maximum wait time for the user's reply before re-engaging the user","type":"number","default":7,"title":"Turn Timeout"},"initial_wait_time":{"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.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Wait Time"},"silence_end_call_timeout":{"description":"Maximum wait time since the user last spoke before terminating the call","type":"number","default":-1,"title":"Silence End Call Timeout"},"mode":{"description":"The mode of turn detection","default":"turn","$ref":"#/components/schemas/TurnMode","x-fern-ignore":true},"turn_eagerness":{"description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)","default":"normal","$ref":"#/components/schemas/TurnEagerness"},"spelling_patience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra","default":"auto","$ref":"#/components/schemas/SpellingPatience"},"speculative_turn":{"description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs.","type":"boolean","default":false,"title":"Speculative Turn"},"retranscribe_on_turn_timeout":{"description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing for affected turns.","type":"boolean","default":false,"title":"Retranscribe On Turn Timeout"},"turn_model":{"default":"turn_v3","$ref":"#/components/schemas/TurnModel"},"interruption_ignore_terms":{"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Terms"},"interruption_ignore_term_languages":{"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Term Languages"},"transcribe_on_disabled_interruptions":{"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.","type":"boolean","default":false,"title":"Transcribe On Disabled Interruptions"}},"example":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_timeout":7},"title":"BaseTurnConfig"},"BasicAuthResponse":{"description":"Response model for basic auth","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"basic_auth","const":"basic_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"username":{"type":"string","title":"Username"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","username","id"],"title":"BasicAuthResponse"},"BatchCallDetailedResponse":{"description":"Detailed response model for a batch call including all recipients.","type":"object","properties":{"id":{"type":"string","title":"Id"},"phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number Id"},"phone_provider":{"anyOf":[{"$ref":"#/components/schemas/TelephonyProvider"},{"type":"null"}]},"whatsapp_params":{"anyOf":[{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"scheduled_time_unix":{"type":"integer","title":"Scheduled Time Unix"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"total_calls_dispatched":{"type":"integer","default":0,"title":"Total Calls Dispatched"},"total_calls_scheduled":{"type":"integer","default":0,"title":"Total Calls Scheduled"},"total_calls_finished":{"type":"integer","default":0,"title":"Total Calls Finished"},"last_updated_at_unix":{"type":"integer","title":"Last Updated At Unix"},"status":{"$ref":"#/components/schemas/BatchCallStatus"},"retry_count":{"type":"integer","default":0,"title":"Retry Count"},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfig"},"target_concurrency_limit":{"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Target Concurrency Limit"},"agent_name":{"type":"string","title":"Agent Name"},"branch_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Name"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/OutboundCallRecipientResponseModel"},"title":"Recipients"}},"required":["id","phone_number_id","phone_provider","whatsapp_params","name","agent_id","branch_id","environment","created_at_unix","scheduled_time_unix","timezone","total_calls_dispatched","total_calls_scheduled","total_calls_finished","last_updated_at_unix","status","retry_count","telephony_call_config","target_concurrency_limit","agent_name","branch_name","recipients"],"title":"BatchCallDetailedResponse"},"BatchCallRecipientStatus":{"type":"string","enum":["pending","dispatched","initiated","in_progress","completed","failed","cancelled","voicemail"],"title":"BatchCallRecipientStatus"},"BatchCallResponse":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number Id"},"phone_provider":{"anyOf":[{"$ref":"#/components/schemas/TelephonyProvider"},{"type":"null"}]},"whatsapp_params":{"anyOf":[{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"scheduled_time_unix":{"type":"integer","title":"Scheduled Time Unix"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"total_calls_dispatched":{"type":"integer","default":0,"title":"Total Calls Dispatched"},"total_calls_scheduled":{"type":"integer","default":0,"title":"Total Calls Scheduled"},"total_calls_finished":{"type":"integer","default":0,"title":"Total Calls Finished"},"last_updated_at_unix":{"type":"integer","title":"Last Updated At Unix"},"status":{"$ref":"#/components/schemas/BatchCallStatus"},"retry_count":{"type":"integer","default":0,"title":"Retry Count"},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfig"},"target_concurrency_limit":{"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Target Concurrency Limit"},"agent_name":{"type":"string","title":"Agent Name"},"branch_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Name"}},"required":["id","phone_number_id","phone_provider","whatsapp_params","name","agent_id","branch_id","environment","created_at_unix","scheduled_time_unix","timezone","total_calls_dispatched","total_calls_scheduled","total_calls_finished","last_updated_at_unix","status","retry_count","telephony_call_config","target_concurrency_limit","agent_name","branch_name"],"title":"BatchCallResponse"},"BatchCallStatus":{"type":"string","enum":["pending","in_progress","completed","failed","cancelled"],"title":"BatchCallStatus"},"BatchCallWhatsAppParams":{"type":"object","properties":{"whatsapp_phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp Phone Number Id"},"whatsapp_call_permission_request_template_name":{"type":"string","title":"Whatsapp Call Permission Request Template Name"},"whatsapp_call_permission_request_template_language_code":{"type":"string","title":"Whatsapp Call Permission Request Template Language Code"}},"required":["whatsapp_call_permission_request_template_name","whatsapp_call_permission_request_template_language_code"],"title":"BatchCallWhatsAppParams"},"BatchFailureResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"failure","const":"failure","title":"Status"},"error_code":{"type":"integer","title":"Error Code"},"error_status":{"type":"string","title":"Error Status"},"error_message":{"type":"string","title":"Error Message"}},"required":["status","error_code","error_status","error_message"],"title":"BatchFailureResponseModel"},"BearerAuthResponse":{"description":"Response model for bearer auth","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"bearer_auth","const":"bearer_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","id"],"title":"BearerAuthResponse"},"BehaviorOverride":{"type":"object","properties":{"verbosity":{"description":"Verbosity override. Underlying default applies when unset.","anyOf":[{"$ref":"#/components/schemas/Verbosity"},{"type":"null"}]},"output_format":{"description":"Output format override. Underlying default applies when unset.","anyOf":[{"$ref":"#/components/schemas/OutputFormat"},{"type":"null"}]},"interaction_budget":{"description":"Interaction budget override. Underlying default applies when unset.","anyOf":[{"$ref":"#/components/schemas/InteractionBudget"},{"type":"null"}]}},"title":"BehaviorOverride"},"BillingPeriod":{"type":"string","enum":["monthly_period","3_month_period","6_month_period","annual_period"],"title":"BillingPeriod"},"Body_Add_a_language_to_the_resource_v1_dubbing_resource__dubbing_id__language_post":{"type":"object","properties":{"language":{"description":"The Target language.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"required":["language"],"title":"Body_Add_a_language_to_the_resource_v1_dubbing_resource__dubbing_id__language_post"},"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_file_post":{"type":"object","properties":{"name":{"description":"The name of the pronunciation dictionary, used for identification only.","type":"string","examples":["My Dictionary"],"title":"Name"},"file":{"description":"A lexicon .pls file which we will use to initialize the project with.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"description":{"description":"A description of the pronunciation dictionary, used for identification only.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Contains pronunciation's of our character names"],"title":"Description"},"workspace_access":{"description":"Should be one of 'admin', 'editor' or 'viewer'. If not provided, defaults to no access.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"examples":["viewer"],"title":"Workspace Access"}},"required":["name"],"title":"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_file_post","x-fern-type-name":"AddPronunciationDictionaryRequest"},"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_rules_post":{"type":"object","properties":{"rules":{"description":"List of pronunciation rules. Rule can be either:\n an alias rule: {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b', }\n or a phoneme rule: {'string_to_replace': 'a', 'type': 'phoneme', 'phoneme': 'b', 'alphabet': 'ipa' }","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleRequestModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleRequestModel"}]},"examples":["\n [\n {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b' },\n {'string_to_replace': 'c', 'type': 'phoneme', 'phoneme': 'd', 'alphabet': 'ipa' }\n ]"],"title":"Rules"},"name":{"description":"The name of the pronunciation dictionary, used for identification only.","type":"string","examples":["My Dictionary"],"title":"Name"},"description":{"description":"A description of the pronunciation dictionary, used for identification only.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Contains pronunciation's of our character names"],"title":"Description"},"workspace_access":{"description":"Should be one of 'admin', 'editor' or 'viewer'. If not provided, defaults to no access.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"examples":["viewer"],"title":"Workspace Access"}},"required":["rules","name"],"title":"Body_Add_a_pronunciation_dictionary_v1_pronunciation_dictionaries_add_from_rules_post"},"Body_Add_member_to_user_group_v1_workspace_groups__group_id__members_post":{"type":"object","properties":{"email":{"description":"The email of the target workspace member.","type":"string","title":"Email"}},"required":["email"],"title":"Body_Add_member_to_user_group_v1_workspace_groups__group_id__members_post","x-fern-type-name":"AddMemberToGroupRequest"},"Body_Add_rules_to_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__add_rules_post":{"type":"object","properties":{"rules":{"description":"List of pronunciation rules. Rule can be either:\n an alias rule: {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b', }\n or a phoneme rule: {'string_to_replace': 'a', 'type': 'phoneme', 'phoneme': 'b', 'alphabet': 'ipa' }","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleRequestModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleRequestModel"}],"x-fern-type-name":"PronunciationDictionaryRule"},"examples":["\n [\n {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b' },\n {'string_to_replace': 'c', 'type': 'phoneme', 'phoneme': 'd', 'alphabet': 'ipa' }\n ]"],"title":"Rules"}},"required":["rules"],"title":"Body_Add_rules_to_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__add_rules_post","x-fern-type-name":"PronunciationDictionary"},"Body_Add_samples_to_PVC_voice_v1_voices_pvc__voice_id__samples_post":{"type":"object","properties":{"files":{"description":"Audio files used to create the voice.","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"}},"required":["files"],"title":"Body_Add_samples_to_PVC_voice_v1_voices_pvc__voice_id__samples_post"},"Body_Add_shared_voice_v1_voices_add__public_user_id___voice_id__post":{"type":"object","properties":{"new_name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"title":"New Name"},"bookmarked":{"type":"boolean","default":true,"title":"Bookmarked"}},"required":["new_name"],"title":"Body_Add_shared_voice_v1_voices_add__public_user_id___voice_id__post"},"Body_Add_to_knowledge_base_v1_convai_knowledge_base_post":{"type":"object","properties":{"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"url":{"description":"URL to a page of documentation that the agent will have access to in order to interact with users.","type":"string","title":"Url"},"file":{"description":"Documentation that the agent will have access to in order to interact with users.","type":"string","format":"binary","title":"File"}},"title":"Body_Add_to_knowledge_base_v1_convai_knowledge_base_post"},"Body_Add_voice_v1_voices_add_post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"title":"Name"},"files":{"description":"A list of file paths to audio recordings intended for voice cloning.","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"description":{"description":"A description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"string"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"}},"required":["name","files"],"title":"Body_Add_voice_v1_voices_add_post","x-fern-type-name":"AddVoiceRequest"},"Body_Audio_Isolation_Stream_v1_audio_isolation_stream_post":{"type":"object","properties":{"audio":{"description":"The audio file from which vocals/speech will be isolated from.","type":"string","format":"binary","title":"Audio"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"}},"required":["audio"],"title":"Body_Audio_Isolation_Stream_v1_audio_isolation_stream_post","x-fern-type-name":"AudioIsolationStreamRequest"},"Body_Audio_Isolation_v1_audio_isolation_post":{"type":"object","properties":{"audio":{"description":"The audio file from which vocals/speech will be isolated from.","type":"string","format":"binary","title":"Audio"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"},"preview_b64":{"description":"Optional preview image base64 for tracking this generation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview B64"}},"required":["audio"],"title":"Body_Audio_Isolation_v1_audio_isolation_post","x-fern-type-name":"AudioIsolationRequest"},"Body_Bulk_delete_knowledge_base_documents_v1_convai_knowledge_base_bulk_delete_post":{"type":"object","properties":{"document_ids":{"description":"The ids of documents or folders from the knowledge base.","type":"array","items":{"type":"string"},"examples":[["21m00Tcm4TlvDq8ikWAM","31m00Tcm4TlvDq8ikWBM"]],"maxItems":20,"minItems":1,"title":"Document Ids","uniqueItems":true},"force":{"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.","type":"boolean","default":false,"title":"Force"}},"required":["document_ids"],"title":"Body_Bulk_delete_knowledge_base_documents_v1_convai_knowledge_base_bulk_delete_post"},"Body_Bulk_move_entities_to_folder_v1_convai_knowledge_base_bulk_move_post":{"type":"object","properties":{"document_ids":{"description":"The ids of documents or folders from the knowledge base.","type":"array","items":{"type":"string"},"examples":[["21m00Tcm4TlvDq8ikWAM","31m00Tcm4TlvDq8ikWBM"]],"maxItems":20,"minItems":1,"title":"Document Ids","uniqueItems":true},"move_to":{"description":"The folder to move the entities to. If not set, the entities will be moved to the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Move To"}},"required":["document_ids"],"title":"Body_Bulk_move_entities_to_folder_v1_convai_knowledge_base_bulk_move_post"},"Body_Bulk_move_tests_to_folder_v1_convai_agent_testing_bulk_move_post":{"type":"object","properties":{"entity_ids":{"description":"The IDs of tests or folders to move.","type":"array","items":{"type":"string"},"minItems":1,"title":"Entity Ids","uniqueItems":true},"move_to":{"description":"The folder to move the entities to. If not set, the entities will be moved to the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Move To"}},"required":["entity_ids"],"title":"Body_Bulk_move_tests_to_folder_v1_convai_agent_testing_bulk_move_post"},"Body_Compose_Music_with_a_detailed_response_v1_music_detailed_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength","x-fern-ignore":true},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"respect_sections_durations":{"description":"Controls how strictly section durations in the `composition_plan` are enforced. Only used with `composition_plan` and only applies to `music_v1`; for `music_v2` section durations are always enforced and this is ignored. When false for `music_v1`, the model may adjust individual section durations for better quality and latency, while preserving the total song duration from the plan.","type":"boolean","default":true,"title":"Respect Sections Durations"},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"},"with_timestamps":{"description":"Whether to return the timestamps of the words in the generated song.","type":"boolean","default":false,"title":"With Timestamps"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"},"model_style_prefix":{"type":"string","default":"music","enum":["music","sfx"],"title":"Model Style Prefix","x-fern-ignore":true}},"title":"Body_Compose_Music_with_a_detailed_response_v1_music_detailed_post"},"Body_Compose_music_v1_music_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength","x-fern-ignore":true},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"respect_sections_durations":{"description":"Controls how strictly section durations in the `composition_plan` are enforced. Only used with `composition_plan` and only applies to `music_v1`; for `music_v2` section durations are always enforced and this is ignored. When false for `music_v1`, the model may adjust individual section durations for better quality and latency, while preserving the total song duration from the plan.","type":"boolean","default":true,"title":"Respect Sections Durations"},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"}},"title":"Body_Compose_music_v1_music_post"},"Body_Compute_RAG_indexes_in_batch_v1_convai_knowledge_base_rag_index_post":{"type":"object","properties":{"items":{"description":"List of requested RAG indexes. Minimum 1, maximum 100 items.","type":"array","items":{"$ref":"#/components/schemas/GetOrCreateRAGIndexRequestModel"},"maxItems":100,"minItems":1,"title":"Items"}},"required":["items"],"title":"Body_Compute_RAG_indexes_in_batch_v1_convai_knowledge_base_rag_index_post"},"Body_Create_Agent_v1_convai_agents_create_post":{"type":"object","properties":{"conversation_config":{"description":"Conversation configuration for an agent","$ref":"#/components/schemas/ConversationalConfigAPIModel-Input"},"platform_settings":{"description":"Platform settings for the agent are all settings that aren't related to the conversation orchestration and content.","anyOf":[{"$ref":"#/components/schemas/AgentPlatformSettingsRequestModel"},{"type":"null"}]},"workflow":{"description":"Workflow for the agent. This is used to define the flow of the conversation and how the agent interacts with tools.","$ref":"#/components/schemas/AgentWorkflowRequestModel"},"name":{"description":"A name to make the agent easier to find","anyOf":[{"type":"string"},{"type":"null"}],"examples":["My agent"],"optional":true,"title":"Name"},"tags":{"description":"Tags to help classify and filter the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["Customer Support","Technical Help","Eleven"]],"optional":true,"title":"Tags"}},"required":["conversation_config"],"title":"Body_Create_Agent_v1_convai_agents_create_post"},"Body_Create_Dubbing_Language_Target_v1_dubbing_project__project_id__language_post":{"type":"object","properties":{"target_language":{"description":"BCP-47 language tag to dub the project into (e.g. 'fr', 'es-419').","type":"string","title":"Target Language"},"model_id":{"description":"Dubbing model id for this target; omit to use the project default.","anyOf":[{"type":"string","const":"dubbing_v2"},{"type":"null"}],"title":"Model Id"},"voice_settings":{"description":"Voice settings applied to the whole language (e.g. cloning strength).","anyOf":[{"$ref":"#/components/schemas/VoiceSettings"},{"type":"null"}]}},"required":["target_language"],"title":"Body_Create_Dubbing_Language_Target_v1_dubbing_project__project_id__language_post"},"Body_Create_Dubbing_Project_v1_dubbing_project_post":{"type":"object","properties":{"file":{"description":"The source media file to dub. Provide this or source_url.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"source_url":{"description":"Public URL to fetch the source media from. Provide this or file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"reference":{"description":"Optional free-form string (max 500 characters) to identify the project on your end.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"},"source_language":{"description":"BCP-47 language tag of the source media. Omit to auto-detect.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"model_id":{"description":"Default dubbing model id for the project's language targets; a target may override it. Omit to use the system default.","anyOf":[{"type":"string","const":"dubbing_v2"},{"type":"null"}],"title":"Model Id"},"keyterms":{"description":"Key terms to bias transcription/translation toward (e.g. product or brand names). At most 1000 terms; each term at most 50 characters and 5 words; the characters `<>{}[]\\` are not allowed.","type":"array","items":{"type":"string"},"title":"Keyterms"},"target_language":{"description":"Optional shortcut: also create a language target in this BCP-47 language, queued to start once the project is ready.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Language"}},"title":"Body_Create_Dubbing_Project_v1_dubbing_project_post"},"Body_Create_Music_Finetune_v1_music_finetunes_post":{"type":"object","properties":{"name":{"description":"Name for the finetune (5-200 characters).","type":"string","maxLength":200,"minLength":5,"title":"Name"},"primary_genre":{"description":"Primary musical genre of the finetune.","type":"string","title":"Primary Genre"},"files":{"description":"Audio files to train on.","type":"array","items":{"type":"string","format":"binary"},"default":[],"maxItems":50,"title":"Files"},"tags":{"description":"Tags to associate with the finetune.","type":"array","items":{"type":"string"},"default":[],"title":"Tags"},"visibility":{"description":"Finetune visibility. Only 'private' and 'workspace' can be set.","anyOf":[{"type":"string","enum":["private","workspace"]},{"type":"null"}],"title":"Visibility"},"model_id":{"description":"The model to create a finetune for.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"}},"required":["name","primary_genre"],"title":"Body_Create_Music_Finetune_v1_music_finetunes_post"},"Body_Create_PVC_voice_v1_voices_pvc_post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"maxLength":100,"title":"Name"},"language":{"description":"Language used in the samples.","type":"string","examples":["en"],"title":"Language"},"description":{"description":"Description to use for the created voice.","anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"}},"required":["name","language"],"title":"Body_Create_PVC_voice_v1_voices_pvc_post","x-fern-type-name":"CreatePvcVoiceRequest"},"Body_Create_Pronunciation_Dictionaries_v1_studio_projects__project_id__pronunciation_dictionaries_post":{"type":"object","properties":{"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (pronunciation_dictionary_id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text. A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody. To specify multiple dictionaries use multiple --form lines in your curl, such as --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"Vmd4Zor6fplcA7WrINey\\\",\\\"version_id\\\":\\\"hRPaxjlTdR7wFMhV4w0b\\\"}\"' --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"JzWtcGQMJ6bnlWwyMo7e\\\",\\\"version_id\\\":\\\"lbmwxiLu4q6txYxgdZqn\\\"}\"'.","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorDBModel"},"examples":[["{\"pronunciation_dictionary_id\": \"21m00Tcm4TlvDq8ikWAM\", \"version_id\": \"BdF0s0aZ3oFoKnDYdTox\"}"]],"title":"Pronunciation Dictionary Locators"},"invalidate_affected_text":{"description":"This will automatically mark text in this project for reconversion when the new dictionary applies or the old one no longer does.","type":"boolean","default":true,"examples":[false],"title":"Invalidate Affected Text"}},"required":["pronunciation_dictionary_locators"],"title":"Body_Create_Pronunciation_Dictionaries_v1_studio_projects__project_id__pronunciation_dictionaries_post"},"Body_Create_Studio_project_v1_studio_projects_post":{"type":"object","properties":{"name":{"description":"The name of the Studio project, used for identification only.","type":"string","examples":["Project 1"],"title":"Name"},"default_title_voice_id":{"description":"The voice_id that corresponds to the default voice used for new titles.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The voice_id that corresponds to the default voice used for new paragraphs.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Paragraph Voice Id"},"default_model_id":{"description":"The ID of the model to be used for this Studio project, you can query GET /v1/models to list all available models.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["eleven_multilingual_v2"],"title":"Default Model Id"},"from_url":{"description":"An optional URL from which we will extract content to initialize the Studio project. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://blog.elevenlabs.io/the_first_ai_that_can_laugh/"],"title":"From Url"},"from_document":{"description":"An optional .epub, .pdf, .txt or similar file can be provided. If provided, we will initialize the Studio project with its content. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"From Document"},"from_content_json":{"description":"\n An optional content to initialize the Studio project with. If this is set, 'from_url' and 'from_document' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.\n\n Example:\n [{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]\n ","type":"string","examples":["[{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]"],"title":"From Content Json"},"quality_preset":{"description":"Output quality of the generated audio. Must be one of:\n'standard' - standard output format, 128kbps with 44.1kHz sample rate.\n'high' - high quality output format, 192kbps with 44.1kHz sample rate and major improvements on our side.\n'ultra' - ultra quality output format, 192kbps with 44.1kHz sample rate and highest improvements on our side.\n'ultra_lossless' - ultra quality output format, 705.6kbps with 44.1kHz sample rate and highest improvements on our side in a fully lossless format.\n","default":"standard","$ref":"#/components/schemas/QualityPresetType","examples":["standard"],"title":"Quality of the generated audio."},"title":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Romeo and Juliet"],"title":"Title"},"author":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["William Shakespeare"],"title":"Author"},"description":{"description":"An optional description of the Studio project.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["A tragic love story between two young lovers."],"title":"Description"},"genres":{"description":"An optional list of genres associated with the Studio project.","type":"array","items":{"type":"string"},"examples":[["Romance","Drama"]],"title":"Genres"},"target_audience":{"description":"An optional target audience of the Studio project.","anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"examples":["adult"],"title":"Target Audience"},"language":{"description":"An optional language of the Studio project. Two-letter language code (ISO 639-1).","anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"examples":["en"],"title":"Language"},"content_type":{"description":"An optional content type of the Studio project.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Book"],"title":"Content Type"},"original_publication_date":{"description":"An optional original publication date of the Studio project, in the format YYYY-MM-DD or YYYY.","anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$|^\\d{4}$"},{"type":"null"}],"examples":["1597-01-01"],"title":"Original Publication Date"},"mature_content":{"description":"An optional specification of whether this Studio project contains mature content.","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[false],"title":"Mature Content"},"isbn_number":{"description":"An optional ISBN number of the Studio project you want to create, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["0-306-40615-2"],"title":"Isbn Number"},"acx_volume_normalization":{"description":"[Deprecated] When the Studio project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements","type":"boolean","default":false,"examples":[false],"title":"Acx Volume Normalization"},"volume_normalization":{"description":"When the Studio project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements","type":"boolean","default":false,"examples":[false],"title":"Volume Normalization"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (pronunciation_dictionary_id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text. A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody. To specify multiple dictionaries use multiple --form lines in your curl, such as --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"Vmd4Zor6fplcA7WrINey\\\",\\\"version_id\\\":\\\"hRPaxjlTdR7wFMhV4w0b\\\"}\"' --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"JzWtcGQMJ6bnlWwyMo7e\\\",\\\"version_id\\\":\\\"lbmwxiLu4q6txYxgdZqn\\\"}\"'.","type":"array","items":{"type":"string"},"examples":[["{\"pronunciation_dictionary_id\": \"21m00Tcm4TlvDq8ikWAM\", \"version_id\": \"BdF0s0aZ3oFoKnDYdTox\"}"]],"title":"Pronunciation Dictionary Locators"},"callback_url":{"description":"\n A url that will be called by our service when the Studio project is converted. Request will contain a json blob containing the status of the conversion\n Messages:\n 1. When project was converted successfully:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"success\",\n project_snapshot_id: \"22m00Tcm4TlvDq8ikMAT\",\n error_details: None,\n }\n }\n 2. When project conversion failed:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"error\",\n project_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n\n 3. When chapter was converted successfully:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"success\",\n chapter_snapshot_id: \"23m00Tcm4TlvDq8ikMAV\",\n error_details: None,\n }\n }\n 4. When chapter conversion failed:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"error\",\n chapter_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n ","anyOf":[{"type":"string"},{"type":"null"}],"examples":[["https://www.test.com/my-api/projects-status"]],"title":"Callback Url"},"fiction":{"description":"An optional specification of whether the content of this Studio project is fiction.","anyOf":[{"type":"string","enum":["fiction","non-fiction"]},{"type":"null"}],"examples":["fiction"],"title":"Fiction"},"apply_text_normalization":{"description":"\n This parameter controls text normalization with four modes: 'auto', 'on', 'apply_english' and 'off'.\n When set to 'auto', the system will automatically decide whether to apply text normalization\n (e.g., spelling out numbers). With 'on', text normalization will always be applied, while\n with 'off', it will be skipped. 'apply_english' is the same as 'on' but will assume that text is in English.\n ","anyOf":[{"type":"string","enum":["auto","on","off","apply_english"]},{"type":"null"}],"title":"Apply Text Normalization"},"auto_convert":{"description":"Whether to auto convert the Studio project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"},"auto_assign_voices":{"description":"[Alpha Feature] Whether automatically assign voices to phrases in the create Project.","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Assign Voices"},"source_type":{"description":"The type of Studio project to create.","anyOf":[{"type":"string","enum":["blank","book","article","genfm","video","screenplay"]},{"type":"null"}],"examples":["book"],"title":"Source Type"},"voice_settings":{"description":" Optional voice settings overrides for the project, encoded as a list of JSON strings.\n\n Example:\n [\"{\\\"voice_id\\\": \\\"21m00Tcm4TlvDq8ikWAM\\\", \\\"stability\\\": 0.7, \\\"similarity_boost\\\": 0.8, \\\"style\\\": 0.5, \\\"speed\\\": 1.0, \\\"use_speaker_boost\\\": true}\"]\n ","type":"array","items":{"type":"string"},"examples":[["{\"voice_id\": \"21m00Tcm4TlvDq8ikWAM\", \"stability\": 0.7, \"similarity_boost\": 0.8, \"style\": 0.5, \"speed\": 1.0, \"use_speaker_boost\": true}"]],"title":"Voice Settings"},"create_publishing_read":{"description":"If true, creates a corresponding read for direct publishing in draft state","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Create Publishing Read"}},"required":["name"],"title":"Body_Create_Studio_project_v1_studio_projects_post"},"Body_Create_URL_document_v1_convai_knowledge_base_url_post":{"type":"object","properties":{"url":{"description":"URL to a page of documentation that the agent will have access to in order to interact with users.","type":"string","title":"Url"},"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"},"enable_auto_sync":{"description":"Whether to enable auto-sync for this URL document.","type":"boolean","default":false,"title":"Enable Auto Sync"},"auto_remove":{"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled.","type":"boolean","default":false,"title":"Auto Remove"}},"required":["url"],"title":"Body_Create_URL_document_v1_convai_knowledge_base_url_post"},"Body_Create_a_new_branch_v1_convai_agents__agent_id__branches_post":{"type":"object","properties":{"parent_version_id":{"description":"ID of the version to branch from","type":"string","title":"Parent Version Id"},"name":{"description":"Name of the branch. It is unique within the agent.","type":"string","maxLength":140,"title":"Name"},"description":{"description":"Description for the branch","type":"string","maxLength":4096,"title":"Description"},"conversation_config":{"description":"Changes to apply to conversation config","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation Config"},"platform_settings":{"description":"Changes to apply to platform settings","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Platform Settings"},"workflow":{"description":"Updated workflow definition","anyOf":[{"$ref":"#/components/schemas/AgentWorkflowRequestModel"},{"type":"null"}]}},"required":["parent_version_id","name","description"],"title":"Body_Create_a_new_branch_v1_convai_agents__agent_id__branches_post"},"Body_Create_a_new_speaker_v1_dubbing_resource__dubbing_id__speaker_post":{"type":"object","properties":{"speaker_name":{"description":"Name to attribute to this speaker.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Name"},"voice_id":{"description":"Either the identifier of a voice from the ElevenLabs voice library, or one of ['track-clone', 'clip-clone'].","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_stability":{"description":"For models that support it, the voice similarity value to use. This will default to 0.65, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Stability"},"voice_similarity":{"description":"For models that support it, the voice similarity value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Similarity"},"voice_style":{"description":"For models that support it, the voice style value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Style"}},"title":"Body_Create_a_new_speaker_v1_dubbing_resource__dubbing_id__speaker_post"},"Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_post":{"type":"object","properties":{"voice_name":{"description":"Name to use for the created voice.","type":"string","examples":["Sassy squeaky mouse"],"title":"Voice Name"},"voice_description":{"description":"Description to use for the created voice.","type":"string","examples":["A sassy squeaky mouse"],"maxLength":1000,"minLength":20,"title":"Voice Description"},"generated_voice_id":{"description":"The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews.","type":"string","examples":["37HceQefKmEi3bGovXjL"],"title":"Generated Voice Id"},"labels":{"description":"Optional, metadata to add to the created voice. Defaults to None.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"examples":[{"language":"en"}],"name":"Voice metadata","title":"Labels"},"played_not_selected_voice_ids":{"description":"List of voice ids that the user has played but not selected. Used for RLHF.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Played Not Selected Voice Ids"}},"required":["voice_name","voice_description","generated_voice_id"],"title":"Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_post"},"Body_Create_agent_draft_v1_convai_agents__agent_id__drafts_post":{"type":"object","properties":{"conversation_config":{"description":"Conversation config for the draft","type":"object","additionalProperties":true,"title":"Conversation Config"},"platform_settings":{"description":"Platform settings for the draft","type":"object","additionalProperties":true,"title":"Platform Settings"},"workflow":{"description":"Workflow for the draft","$ref":"#/components/schemas/AgentWorkflowRequestModel"},"name":{"description":"Name for the draft","type":"string","title":"Name"},"tags":{"description":"Tags to help classify and filter the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["Customer Support","Technical Help","Eleven"]],"optional":true,"title":"Tags"}},"required":["conversation_config","platform_settings","workflow","name"],"title":"Body_Create_agent_draft_v1_convai_agents__agent_id__drafts_post"},"Body_Create_agent_test_folder_v1_convai_agent_testing_folders_post":{"type":"object","properties":{"name":{"description":"The name of the folder to create","type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the folder will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"Body_Create_agent_test_folder_v1_convai_agent_testing_folders_post"},"Body_Create_chapter_v1_studio_projects__project_id__chapters_post":{"type":"object","properties":{"name":{"description":"The name of the chapter, used for identification only.","type":"string","examples":["Chapter 1"],"title":"Name"},"from_url":{"description":"An optional URL from which we will extract content to initialize the Studio project. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://blog.elevenlabs.io/the_first_ai_that_can_laugh/"],"title":"From Url"}},"required":["name"],"title":"Body_Create_chapter_v1_studio_projects__project_id__chapters_post"},"Body_Create_crawl_job_v1_convai_knowledge_base_crawl_post":{"type":"object","properties":{"url":{"description":"URL to a page of documentation that the agent will have access to in order to interact with users.","type":"string","title":"Url"},"max_depth":{"description":"Maximum depth for crawling (1-5), defaults to 3.","type":"integer","default":3,"maximum":5,"minimum":1,"title":"Max Depth"},"max_pages":{"description":"Maximum number of pages to crawl (1-10,000), defaults to 1000.","type":"integer","default":1000,"maximum":10000,"minimum":1,"title":"Max Pages"},"pattern":{"description":"If set, only URLs that match this pattern are included.","anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Pattern"},"sitemap_urls":{"description":"List of URLs to crawl from sitemap (optional, overrides automatic URL discovery).","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sitemap Urls"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"},"enable_auto_sync":{"description":"Whether to enable auto-sync for this URL document.","type":"boolean","default":false,"title":"Enable Auto Sync"},"auto_remove":{"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled.","type":"boolean","default":false,"title":"Auto Remove"}},"required":["url"],"title":"Body_Create_crawl_job_v1_convai_knowledge_base_crawl_post"},"Body_Create_file_document_v1_convai_knowledge_base_file_post":{"type":"object","properties":{"file":{"description":"Documentation that the agent will have access to in order to interact with users.","type":"string","format":"binary","title":"File"},"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["file"],"title":"Body_Create_file_document_v1_convai_knowledge_base_file_post"},"Body_Create_folder_v1_convai_knowledge_base_folder_post":{"type":"object","properties":{"name":{"description":"A custom, human-readable name for the document.","type":"string","minLength":1,"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"},"enable_auto_sync":{"description":"Whether to enable auto-sync for this URL document.","type":"boolean","default":false,"title":"Enable Auto Sync"},"auto_remove":{"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled.","type":"boolean","default":false,"title":"Auto Remove"}},"required":["name"],"title":"Body_Create_folder_v1_convai_knowledge_base_folder_post"},"Body_Create_forced_alignment_v1_forced_alignment_post":{"type":"object","properties":{"file":{"description":"The file to align. All major audio formats are supported. The file size must be less than 1GB.","type":"string","format":"binary","title":"File"},"text":{"description":"The text to align with the audio. The input text can be in any format, however diarization is not supported at this time.","type":"string","title":"Text"}},"required":["file","text"],"title":"Body_Create_forced_alignment_v1_forced_alignment_post"},"Body_Create_or_update_deployments_v1_convai_agents__agent_id__deployments_post":{"type":"object","properties":{"deployment_request":{"description":"Request to create a new deployment","$ref":"#/components/schemas/AgentDeploymentRequest"}},"required":["deployment_request"],"title":"Body_Create_or_update_deployments_v1_convai_agents__agent_id__deployments_post"},"Body_Create_podcast_v1_studio_podcasts_post":{"type":"object","properties":{"model_id":{"description":"The ID of the model to be used for this Studio project, you can query GET /v1/models to list all available models.","type":"string","examples":["eleven_multilingual_v2"],"title":"Model Id"},"mode":{"description":"The type of podcast to generate. Can be 'conversation', an interaction between two voices, or 'bulletin', a monologue.","anyOf":[{"$ref":"#/components/schemas/PodcastConversationMode"},{"$ref":"#/components/schemas/PodcastBulletinMode"}],"examples":[{"conversation":{"guest_voice_id":"bYTqZQo3Jz7LQtmGTgwi","host_voice_id":"6lCwbsX1yVjD49QmpkTR"},"type":"conversation"}],"title":"Mode"},"source":{"description":"The source content for the Podcast.","anyOf":[{"$ref":"#/components/schemas/PodcastTextSource"},{"$ref":"#/components/schemas/PodcastURLSource"},{"items":{"anyOf":[{"$ref":"#/components/schemas/PodcastTextSource"},{"$ref":"#/components/schemas/PodcastURLSource"}]},"type":"array"}],"examples":[{"type":"url","url":"https://en.wikipedia.org/wiki/Cognitive_science"}],"title":"Source"},"quality_preset":{"description":"Output quality of the generated audio. Must be one of:\n'standard' - standard output format, 128kbps with 44.1kHz sample rate.\n'high' - high quality output format, 192kbps with 44.1kHz sample rate and major improvements on our side.\n'ultra' - ultra quality output format, 192kbps with 44.1kHz sample rate and highest improvements on our side.\n'ultra_lossless' - ultra quality output format, 705.6kbps with 44.1kHz sample rate and highest improvements on our side in a fully lossless format.\n","default":"standard","$ref":"#/components/schemas/QualityPresetType","examples":["standard"],"title":"Quality of the generated audio."},"duration_scale":{"description":"Duration of the generated podcast. Must be one of:\nshort - produces podcasts shorter than 3 minutes.\ndefault - produces podcasts roughly between 3-7 minutes.\nlong - produces podcasts longer than 7 minutes.\n","type":"string","default":"default","enum":["short","default","long"],"examples":["short"],"title":"The duration of the generated podcast. This varies depending on the format, voice and language."},"language":{"description":"An optional language of the Studio project. Two-letter language code (ISO 639-1).","anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"examples":["en"],"title":"Language"},"intro":{"description":"The intro text that will always be added to the beginning of the podcast.","anyOf":[{"type":"string","maxLength":1500},{"type":"null"}],"examples":["Welcome to the podcast."],"title":"Intro"},"outro":{"description":"The outro text that will always be added to the end of the podcast.","anyOf":[{"type":"string","maxLength":1500},{"type":"null"}],"examples":["Thank you for listening!"],"title":"Outro"},"instructions_prompt":{"description":"Additional instructions prompt for the podcast generation used to adjust the podcast's style and tone.","anyOf":[{"type":"string","maxLength":3000},{"type":"null"}],"examples":["Ensure the podcast remains factual, accurate and appropriate for all audiences."],"title":"Instructions Prompt"},"highlights":{"description":"A brief summary or highlights of the Studio project's content, providing key points or themes. This should be between 10 and 70 characters.","anyOf":[{"items":{"type":"string","maxLength":70,"minLength":10},"type":"array"},{"type":"null"}],"examples":[["Emphasize the importance of AI on education"]],"title":"Highlights"},"callback_url":{"description":"\n A url that will be called by our service when the Studio project is converted. Request will contain a json blob containing the status of the conversion\n Messages:\n 1. When project was converted successfully:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"success\",\n project_snapshot_id: \"22m00Tcm4TlvDq8ikMAT\",\n error_details: None,\n }\n }\n 2. When project conversion failed:\n {\n type: \"project_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n conversion_status: \"error\",\n project_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n\n 3. When chapter was converted successfully:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"success\",\n chapter_snapshot_id: \"23m00Tcm4TlvDq8ikMAV\",\n error_details: None,\n }\n }\n 4. When chapter conversion failed:\n {\n type: \"chapter_conversion_status\",\n event_timestamp: 1234567890,\n data: {\n request_id: \"1234567890\",\n project_id: \"21m00Tcm4TlvDq8ikWAM\",\n chapter_id: \"22m00Tcm4TlvDq8ikMAT\",\n conversion_status: \"error\",\n chapter_snapshot_id: None,\n error_details: \"Error details if conversion failed\"\n }\n }\n ","anyOf":[{"type":"string"},{"type":"null"}],"examples":[["https://www.test.com/my-api/projects-status"]],"title":"Callback Url"},"apply_text_normalization":{"description":"\n This parameter controls text normalization with four modes: 'auto', 'on', 'apply_english' and 'off'.\n When set to 'auto', the system will automatically decide whether to apply text normalization\n (e.g., spelling out numbers). With 'on', text normalization will always be applied, while\n with 'off', it will be skipped. 'apply_english' is the same as 'on' but will assume that text is in English.\n ","anyOf":[{"type":"string","enum":["auto","on","off","apply_english"]},{"type":"null"}],"title":"Apply Text Normalization"}},"required":["model_id","mode","source"],"title":"Body_Create_podcast_v1_studio_podcasts_post"},"Body_Create_text_document_v1_convai_knowledge_base_text_post":{"type":"object","properties":{"text":{"description":"Text content to be added to the knowledge base.","type":"string","title":"Text"},"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"parent_folder_id":{"description":"If set, the created document or folder will be placed inside the given folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["text"],"title":"Body_Create_text_document_v1_convai_knowledge_base_text_post"},"Body_Create_workspace_webhook_v1_workspace_webhooks_post":{"type":"object","properties":{"settings":{"description":"Webhook settings object containing auth_type and corresponding configuration","$ref":"#/components/schemas/WebhookHMACSettings"}},"required":["settings"],"title":"Body_Create_workspace_webhook_v1_workspace_webhooks_post"},"Body_Creates_Audio_Native_enabled_project__v1_audio_native_post":{"type":"object","properties":{"name":{"description":"Project name.","type":"string","title":"Name"},"image":{"description":"(Deprecated) Image URL used in the player. If not provided, default image set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Image"},"author":{"description":"Author used in the player and inserted at the start of the uploaded article. If not provided, the default author set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"title":{"description":"Title used in the player and inserted at the top of the uploaded article. If not provided, the default title set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"small":{"description":"(Deprecated) Whether to use small player or not. If not provided, default value set in the Player settings is used.","type":"boolean","default":false,"deprecated":true,"title":"Small"},"text_color":{"description":"Text color used in the player. If not provided, default text color set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Color"},"background_color":{"description":"Background color used in the player. If not provided, default background color set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"sessionization":{"description":"(Deprecated) Specifies for how many minutes to persist the session across page reloads. If not provided, default sessionization set in the Player settings is used.","type":"integer","default":0,"deprecated":true,"title":"Sessionization"},"voice_id":{"description":"Voice ID used to voice the content. If not provided, default voice ID set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"model_id":{"description":"TTS Model ID used in the player. If not provided, default model ID set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"file":{"description":"Either txt or HTML input file containing the article content. HTML should be formatted as follows '<html><body><div><p>Your content</p><h3>More of your content</h3><p>Some more of your content</p></div></body></html>'","type":"string","format":"binary","title":"File"},"auto_convert":{"description":"Whether to auto convert the project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"},"apply_text_normalization":{"description":"\n This parameter controls text normalization with four modes: 'auto', 'on', 'apply_english' and 'off'.\n When set to 'auto', the system will automatically decide whether to apply text normalization\n (e.g., spelling out numbers). With 'on', text normalization will always be applied, while\n with 'off', it will be skipped. 'apply_english' is the same as 'on' but will assume that text is in English.\n ","anyOf":[{"type":"string","enum":["auto","on","off","apply_english"]},{"type":"null"}],"title":"Apply Text Normalization"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (pronunciation_dictionary_id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text. A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody. To specify multiple dictionaries use multiple --form lines in your curl, such as --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"Vmd4Zor6fplcA7WrINey\\\",\\\"version_id\\\":\\\"hRPaxjlTdR7wFMhV4w0b\\\"}\"' --form 'pronunciation_dictionary_locators=\"{\\\"pronunciation_dictionary_id\\\":\\\"JzWtcGQMJ6bnlWwyMo7e\\\",\\\"version_id\\\":\\\"lbmwxiLu4q6txYxgdZqn\\\"}\"'.","type":"array","items":{"type":"string"},"examples":[["{\"pronunciation_dictionary_id\": \"21m00Tcm4TlvDq8ikWAM\", \"version_id\": \"BdF0s0aZ3oFoKnDYdTox\"}"]],"title":"Pronunciation Dictionary Locators"}},"required":["name"],"title":"Body_Creates_Audio_Native_enabled_project__v1_audio_native_post"},"Body_Delete_existing_invitation_v1_workspace_invites_delete":{"type":"object","properties":{"email":{"description":"The email of the customer","type":"string","examples":["john.doe@testmail.com"],"title":"Email"}},"required":["email"],"title":"Body_Delete_existing_invitation_v1_workspace_invites_delete"},"Body_Delete_member_from_user_group_v1_workspace_groups__group_id__members_remove_post":{"type":"object","properties":{"email":{"description":"The email of the target workspace member.","type":"string","title":"Email"}},"required":["email"],"title":"Body_Delete_member_from_user_group_v1_workspace_groups__group_id__members_remove_post"},"Body_Download_history_items_v1_history_download_post":{"type":"object","properties":{"history_item_ids":{"description":"A list of history items to download, you can get IDs of history items and other metadata using the GET https://api.elevenlabs.io/v1/history endpoint.","type":"array","items":{"type":"string"},"title":"History Item Ids"},"output_format":{"description":"Output format to transcode the audio file, can be wav or default.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Format"}},"required":["history_item_ids"],"title":"Body_Download_history_items_v1_history_download_post","x-fern-type-name":"DownloadHistoryRequest"},"Body_Dub_a_video_or_an_audio_file_v1_dubbing_post":{"type":"object","properties":{"file":{"description":"A list of file paths to audio recordings intended for voice cloning","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"csv_file":{"description":"CSV file containing transcription/translation metadata","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Csv File"},"foreground_audio_file":{"description":"For use only with csv input","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Foreground Audio File"},"background_audio_file":{"description":"For use only with csv input","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Background Audio File"},"name":{"description":"Name of the dubbing project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"source_url":{"description":"URL of the source video/audio file.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"source_lang":{"description":"Source language. Expects a valid iso639-1 or iso639-3 language code.","type":"string","default":"auto","title":"Source Lang"},"target_lang":{"description":"The Target language to dub the content into. Expects a valid iso639-1 or iso639-3 language code.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Lang"},"target_accent":{"description":"[Experimental] An accent to apply when selecting voices from the library and to use to inform translation of the dialect to prefer.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Accent"},"num_speakers":{"description":"Number of speakers to use for the dubbing. Set to 0 to automatically detect the number of speakers","type":"integer","default":0,"title":"Num Speakers"},"watermark":{"description":"Whether to apply watermark to the output video.","type":"boolean","default":false,"title":"Watermark"},"start_time":{"description":"Start time of the source video/audio file.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Time"},"end_time":{"description":"End time of the source video/audio file.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time"},"highest_resolution":{"description":"Whether to use the highest resolution available.","type":"boolean","default":false,"title":"Highest Resolution"},"drop_background_audio":{"description":"An advanced setting. Whether to drop background audio from the final dub. This can improve dub quality where it's known that audio shouldn't have a background track such as for speeches or monologues.","type":"boolean","default":false,"title":"Drop Background Audio"},"use_profanity_filter":{"description":"[BETA] Whether transcripts should have profanities censored with the words '[censored]'","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Profanity Filter"},"dubbing_studio":{"description":"Whether to prepare dub for edits in dubbing studio or edits as a dubbing resource.","type":"boolean","default":false,"title":"Dubbing Studio"},"disable_voice_cloning":{"description":"Instead of using a voice clone in dubbing, use a similar voice from the ElevenLabs Voice Library. Voices used from the library will contribute towards a workspace's custom voices limit, and if there aren't enough available slots the dub will fail. Using this feature requires the caller to have the 'add_voice_from_voice_library' permission on their workspace to access new voices.","type":"boolean","default":false,"title":"Disable Voice Cloning"},"mode":{"description":"The mode in which to run this Dubbing job. Defaults to automatic, use manual if specifically providing a CSV transcript to use. Note that manual mode is experimental and production use is strongly discouraged.","type":"string","default":"automatic","enum":["automatic","manual"],"title":"Mode"},"csv_fps":{"description":"Frames per second to use when parsing a CSV file for dubbing. If not provided, FPS will be inferred from timecodes.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Csv Fps"}},"title":"Body_Dub_a_video_or_an_audio_file_v1_dubbing_post","x-fern-type-name":"DubRequest","required":["target_lang"]},"Body_Dubs_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__dub_post":{"type":"object","properties":{"segments":{"description":"Dub only this list of segments.","type":"array","items":{"type":"string"},"title":"Segments"},"languages":{"description":"Dub only these languages for each segment.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"}},"required":["segments","languages"],"title":"Body_Dubs_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__dub_post"},"Body_Duplicate_Agent_v1_convai_agents__agent_id__duplicate_post":{"type":"object","properties":{"name":{"description":"A name to make the agent easier to find","anyOf":[{"type":"string"},{"type":"null"}],"examples":["My agent"],"optional":true,"title":"Name"}},"title":"Body_Duplicate_Agent_v1_convai_agents__agent_id__duplicate_post"},"Body_Edit_PVC_voice_v1_voices_pvc__voice_id__post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"maxLength":100,"title":"Name"},"language":{"description":"Language used in the samples.","type":"string","examples":["en"],"title":"Language"},"description":{"description":"Description to use for the created voice.","anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"}},"title":"Body_Edit_PVC_voice_v1_voices_pvc__voice_id__post"},"Body_Edit_voice_v1_voices__voice_id__edit_post":{"type":"object","properties":{"name":{"description":"The name that identifies this voice. This will be displayed in the dropdown of the website.","type":"string","examples":["John Smith"],"title":"Name"},"files":{"description":"Audio files to add to the voice","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"description":{"description":"A description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["An old American male voice with a slight hoarseness in his throat. Perfect for news."],"title":"Description"},"labels":{"description":"Labels for the voice. Keys can be language, accent, gender, or age.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"string"},{"type":"null"}],"examples":["{\"language\": \"en\", \"accent\": \"en-US\", \"gender\": \"male\", \"age\": \"middle-aged\"}"],"title":"Labels"},"moderate_metadata":{"description":"Run synchronous LLM moderation over the voice name and description when they change. Has no effect unless the voice_library_metadata_moderation feature flag is enabled for the user.","type":"boolean","default":false,"title":"Moderate Metadata"}},"required":["name"],"title":"Body_Edit_voice_v1_voices__voice_id__edit_post","x-fern-type-name":"EditVoiceRequest"},"Body_Generate_composition_plan_v1_music_plan_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to compose a plan from.","type":"string","maxLength":4100,"title":"Prompt"},"music_length_ms":{"description":"The length of the composition plan to generate in milliseconds. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"source_composition_plan":{"description":"An optional composition plan to use as a source for the new composition plan.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"},{"type":"null"}],"title":"Source Composition Plan"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"}},"required":["prompt"],"title":"Body_Generate_composition_plan_v1_music_plan_post"},"Body_Get_Workspace_Usage_v1_workspace_analytics_query_usage_by_product_over_time_post":{"type":"object","properties":{"start_time":{"description":"Start of the time range as a Unix timestamp in milliseconds. Must be at least 2020-01-01.","type":"integer","minimum":1577836800000,"title":"Start Time"},"end_time":{"description":"End of the time range as a Unix timestamp in milliseconds. Must be at least 2020-01-01.","type":"integer","minimum":1577836800000,"title":"End Time"},"interval_seconds":{"description":"Bucket size in seconds. Each row in the response covers this many seconds of the selected time range. For example, pass 3600 for hourly buckets or 86400 for daily buckets. Whether `time_zone` shifts bucket boundaries depends on this value: whole-day multiples (e.g. 86400) align to local midnight; whole-hour multiples up to 24 hours (e.g. 3600, 14400) align to local hour boundaries from midnight; sub-hour values and other sizes remain UTC-anchored regardless of `time_zone`.","type":"integer","default":60,"minimum":1,"title":"Interval Seconds"},"group_by":{"anyOf":[{"items":{"type":"string","enum":["product_type","model","voice_id","user_id","fiat_currency","fiat_charge_type","region","reporting_workspace_id","request_source","resource_id","subresource_id","request_queue_type","voice_multiplier","hashed_xi_api_key","billing_group_id","surface","actor"]},"type":"array"},{"type":"null"}],"title":"Group By"},"filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/ColumnFilter"},"type":"array"},{"type":"null"}],"title":"Filters"},"time_zone":{"description":"IANA time zone identifier (e.g. 'America/New_York', 'Europe/London', 'UTC') used to align bucket boundaries for eligible `interval_seconds` values. Whole-day multiples start at local midnight; whole-hour multiples up to 24 hours align to local hour boundaries from midnight. Sub-hour intervals and other bucket sizes remain UTC-anchored regardless of this setting. Defaults to UTC.","type":"string","default":"UTC","title":"Time Zone"}},"required":["start_time","end_time"],"title":"Body_Get_Workspace_Usage_v1_workspace_analytics_query_usage_by_product_over_time_post"},"Body_Get_dependent_agents_for_multiple_documents_v1_convai_knowledge_base_dependent_agents_post":{"type":"object","properties":{"document_ids":{"description":"The ids of documents or folders from the knowledge base.","type":"array","items":{"type":"string"},"examples":[["21m00Tcm4TlvDq8ikWAM","31m00Tcm4TlvDq8ikWBM"]],"maxItems":20,"minItems":1,"title":"Document Ids","uniqueItems":true}},"required":["document_ids"],"title":"Body_Get_dependent_agents_for_multiple_documents_v1_convai_knowledge_base_dependent_agents_post"},"Body_Get_similar_library_voices_v1_similar_voices_post":{"type":"object","properties":{"audio_file":{"type":"string","format":"binary","title":"Audio File"},"similarity_threshold":{"description":"Threshold for voice similarity between provided sample and library voices. Values range from 0 to 2. The smaller the value the more similar voices will be returned.","anyOf":[{"type":"number"},{"type":"null"}],"examples":[0.5],"title":"Similarity Threshold"},"top_k":{"description":"Number of most similar voices to return. If similarity_threshold is provided, less than this number of voices may be returned. Values range from 1 to 100.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[10],"title":"Top K"}},"title":"Body_Get_similar_library_voices_v1_similar_voices_post","x-fern-type-name":"ListSimilarVoicesRequest"},"Body_Handle_an_outbound_call_via_Exotel_v1_convai_exotel_outbound_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_phone_number_id":{"type":"string","title":"Agent Phone Number Id"},"to_number":{"type":"string","title":"To Number"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"}},"required":["agent_id","agent_phone_number_id","to_number"],"title":"Body_Handle_an_outbound_call_via_Exotel_v1_convai_exotel_outbound_call_post"},"Body_Handle_an_outbound_call_via_SIP_trunk_v1_convai_sip_trunk_outbound_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_phone_number_id":{"type":"string","title":"Agent Phone Number Id"},"to_number":{"type":"string","title":"To Number"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"}},"required":["agent_id","agent_phone_number_id","to_number"],"title":"Body_Handle_an_outbound_call_via_SIP_trunk_v1_convai_sip_trunk_outbound_call_post"},"Body_Handle_an_outbound_call_via_Twilio_v1_convai_twilio_outbound_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_phone_number_id":{"type":"string","title":"Agent Phone Number Id"},"to_number":{"type":"string","title":"To Number"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]},"call_recording_enabled":{"description":"Whether let Twilio record the call.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Call Recording Enabled"},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"}},"required":["agent_id","agent_phone_number_id","to_number"],"title":"Body_Handle_an_outbound_call_via_Twilio_v1_convai_twilio_outbound_call_post"},"Body_Invite_multiple_users_v1_workspace_invites_add_bulk_post":{"type":"object","properties":{"emails":{"description":"The email of the customer","type":"array","items":{"type":"string"},"examples":["john.doe@testmail.com"],"title":"Emails"},"seat_type":{"description":"The seat type of the user","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}],"examples":["workspace_member","workspace_admin"]},"group_ids":{"description":"The group ids of the user","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["group_id_1","group_id_2"]],"title":"Group Ids"},"usage_limit":{"description":"Monthly credit usage limit for the invitee. Omit or set to null for no custom cap.","anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"examples":[5000],"title":"Usage Limit"}},"required":["emails"],"title":"Body_Invite_multiple_users_v1_workspace_invites_add_bulk_post"},"Body_Invite_user_v1_workspace_invites_add_post":{"type":"object","properties":{"email":{"description":"The email of the customer","type":"string","examples":["john.doe@testmail.com"],"title":"Email"},"workspace_permission":{"description":"The workspace permission of the user. This is deprecated, use `seat_type` instead.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"examples":["workspace_member","workspace_admin"],"title":"Workspace Permission"},"seat_type":{"description":"The seat type of the user","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}],"examples":["workspace_member","workspace_admin"]},"group_ids":{"description":"The group ids of the user","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["group_id_1","group_id_2"]],"title":"Group Ids"},"usage_limit":{"description":"Monthly credit usage limit for the invitee. Omit or set to null for no custom cap.","anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"examples":[5000],"title":"Usage Limit"}},"required":["email"],"title":"Body_Invite_user_v1_workspace_invites_add_post","x-fern-type-name":"InviteUserRequest"},"Body_List_API_requests_v1_workspace_analytics_requests_post":{"type":"object","properties":{"start_time":{"description":"Start of the time range as a Unix timestamp in milliseconds.","anyOf":[{"type":"integer","minimum":1577836800000},{"type":"null"}],"title":"Start Time"},"end_time":{"description":"End of the time range as a Unix timestamp in milliseconds.","anyOf":[{"type":"integer","minimum":1577836800000},{"type":"null"}],"title":"End Time"},"limit":{"type":"integer","default":100,"maximum":1000,"minimum":1,"title":"Limit"},"sort":{"description":"Optional timestamp sort direction. If omitted, defaults to desc when end_time is provided, otherwise asc.","anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"null"}],"title":"Sort"},"filters":{"anyOf":[{"items":{"$ref":"#/components/schemas/ColumnFilter"},"type":"array"},{"type":"null"}],"title":"Filters"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},"title":"Body_List_API_requests_v1_workspace_analytics_requests_post"},"Body_Make_an_outbound_call_via_WhatsApp_v1_convai_whatsapp_outbound_call_post":{"type":"object","properties":{"whatsapp_phone_number_id":{"type":"string","title":"Whatsapp Phone Number Id"},"whatsapp_user_id":{"type":"string","title":"Whatsapp User Id"},"whatsapp_call_permission_request_template_name":{"type":"string","title":"Whatsapp Call Permission Request Template Name"},"whatsapp_call_permission_request_template_language_code":{"type":"string","title":"Whatsapp Call Permission Request Template Language Code"},"agent_id":{"type":"string","title":"Agent Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"required":["whatsapp_phone_number_id","whatsapp_user_id","whatsapp_call_permission_request_template_name","whatsapp_call_permission_request_template_language_code","agent_id"],"title":"Body_Make_an_outbound_call_via_WhatsApp_v1_convai_whatsapp_outbound_call_post"},"Body_Merge_a_branch_into_a_target_branch_v1_convai_agents__agent_id__branches__source_branch_id__merge_post":{"type":"object","properties":{"archive_source_branch":{"description":"Whether to archive the source branch after merging","type":"boolean","default":true,"title":"Archive Source Branch"},"force":{"description":"Force source branch changes onto the target, overriding timestamp-based conflict resolution","type":"boolean","default":false,"title":"Force"}},"title":"Body_Merge_a_branch_into_a_target_branch_v1_convai_agents__agent_id__branches__source_branch_id__merge_post"},"Body_Move_entity_to_folder_v1_convai_knowledge_base__document_id__move_post":{"type":"object","properties":{"move_to":{"description":"The folder to move the entities to. If not set, the entities will be moved to the root folder.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Move To"}},"title":"Body_Move_entity_to_folder_v1_convai_knowledge_base__document_id__move_post"},"Body_Move_segments_between_speakers_v1_dubbing_resource__dubbing_id__migrate_segments_post":{"type":"object","properties":{"segment_ids":{"type":"array","items":{"type":"string"},"title":"Segment Ids"},"speaker_id":{"type":"string","title":"Speaker Id"}},"required":["segment_ids","speaker_id"],"title":"Body_Move_segments_between_speakers_v1_dubbing_resource__dubbing_id__migrate_segments_post"},"Body_Patches_an_Agent_settings_v1_convai_agents__agent_id__patch":{"type":"object","properties":{"conversation_config":{"description":"Conversation configuration for an agent","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation Config","$ref":"#/components/schemas/ConversationalConfigAPIModel-Input"},"platform_settings":{"description":"Platform settings for the agent are all settings that aren't related to the conversation orchestration and content.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Platform Settings","$ref":"#/components/schemas/AgentPlatformSettingsRequestModel"},"workflow":{"description":"Workflow for the agent. This is used to define the flow of the conversation and how the agent interacts with tools.","$ref":"#/components/schemas/AgentWorkflowRequestModel"},"name":{"description":"A name to make the agent easier to find","anyOf":[{"type":"string"},{"type":"null"}],"examples":["My agent"],"optional":true,"title":"Name"},"tags":{"description":"Tags to help classify and filter the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["Customer Support","Technical Help","Eleven"]],"optional":true,"title":"Tags"},"version_description":{"description":"Description for this version when publishing changes (only applicable for versioned agents)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Description"}},"title":"Body_Patches_an_Agent_settings_v1_convai_agents__agent_id__patch","x-fern-type-name":"UpdateAgentRequest"},"Body_Post_Agent_avatar_v1_convai_agents__agent_id__avatar_post":{"type":"object","properties":{"avatar_file":{"description":"An image file to be used as the agent's avatar.","type":"string","format":"binary","title":"Avatar File"}},"required":["avatar_file"],"title":"Body_Post_Agent_avatar_v1_convai_agents__agent_id__avatar_post"},"Body_Register_a_Twilio_call_and_return_TwiML_v1_convai_twilio_register_call_post":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"from_number":{"type":"string","title":"From Number"},"to_number":{"type":"string","title":"To Number"},"direction":{"default":"inbound","$ref":"#/components/schemas/TelephonyDirection"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"required":["agent_id","from_number","to_number"],"title":"Body_Register_a_Twilio_call_and_return_TwiML_v1_convai_twilio_register_call_post"},"Body_Register_media_v1_productions_orders__order_id__media_post":{"type":"object","properties":{"declared_language":{"description":"The language code of the media content (e.g. 'en', 'es-ES'). Must be a supported source language for some order item kind.","type":"string","title":"Declared Language"},"media":{"description":"The media file to upload. Mutually exclusive with media_url.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Media"},"media_url":{"description":"A URL to fetch the media file from. Mutually exclusive with media.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Url"},"media_url_filename":{"description":"The filename for URL-sourced media (e.g. 'example.mp4'). Required when using media_url.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Url Filename"},"media_url_content_type":{"description":"The MIME type for URL-sourced media (e.g. 'video/mp4'). Required when using media_url.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Url Content Type"}},"required":["declared_language"],"title":"Body_Register_media_v1_productions_orders__order_id__media_post"},"Body_Remove_rules_from_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__remove_rules_post":{"type":"object","properties":{"rule_strings":{"description":"List of strings to remove from the pronunciation dictionary.","type":"array","items":{"type":"string"},"examples":["['a', 'b']"],"title":"Rule Strings"}},"required":["rule_strings"],"title":"Body_Remove_rules_from_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__remove_rules_post","x-fern-type-name":"RemovePronunciationDictionaryRulesRequest"},"Body_Render_audio_or_video_for_the_given_language_v1_dubbing_resource__dubbing_id__render__language__post":{"type":"object","properties":{"render_type":{"description":"The type of the render. One of ['mp4', 'aac', 'mp3', 'wav', 'aaf', 'tracks_zip', 'clips_zip']","$ref":"#/components/schemas/RenderType"},"normalize_volume":{"description":"Whether to normalize the volume of the rendered audio.","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Normalize Volume"}},"required":["render_type"],"title":"Body_Render_audio_or_video_for_the_given_language_v1_dubbing_resource__dubbing_id__render__language__post"},"Body_Request_manual_verification_v1_voices_pvc__voice_id__verification_post":{"type":"object","properties":{"files":{"description":"Verification documents","type":"array","items":{"type":"string","format":"binary"},"title":"Files"},"extra_text":{"description":"Extra text to be used in the manual verification process.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Extra Text"}},"required":["files"],"title":"Body_Request_manual_verification_v1_voices_pvc__voice_id__verification_post"},"Body_Run_PVC_training_v1_voices_pvc__voice_id__train_post":{"type":"object","properties":{"model_id":{"description":"The model ID to use for the conversion.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["eleven_turbo_v2"],"title":"Model Id"}},"title":"Body_Run_PVC_training_v1_voices_pvc__voice_id__train_post"},"Body_Send_an_outbound_message_via_WhatsApp_v1_convai_whatsapp_outbound_message_post":{"type":"object","properties":{"whatsapp_phone_number_id":{"type":"string","title":"Whatsapp Phone Number Id"},"whatsapp_user_id":{"type":"string","title":"Whatsapp User Id"},"template_name":{"type":"string","title":"Template Name"},"template_language_code":{"type":"string","title":"Template Language Code"},"template_params":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WhatsAppTemplateHeaderComponentParams"},{"$ref":"#/components/schemas/WhatsAppTemplateBodyComponentParams"},{"$ref":"#/components/schemas/WhatsAppTemplateButtonComponentParams"}],"discriminator":{"propertyName":"type","mapping":{"body":"#/components/schemas/WhatsAppTemplateBodyComponentParams","button":"#/components/schemas/WhatsAppTemplateButtonComponentParams","header":"#/components/schemas/WhatsAppTemplateHeaderComponentParams"}}},"title":"Template Params"},"agent_id":{"type":"string","title":"Agent Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"required":["whatsapp_phone_number_id","whatsapp_user_id","template_name","template_language_code","template_params","agent_id"],"title":"Body_Send_an_outbound_message_via_WhatsApp_v1_convai_whatsapp_outbound_message_post"},"Body_Set_rules_on_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__set_rules_post":{"type":"object","properties":{"rules":{"description":"List of pronunciation rules. Rule can be either:\n an alias rule: {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b', }\n or a phoneme rule: {'string_to_replace': 'a', 'type': 'phoneme', 'phoneme': 'b', 'alphabet': 'ipa' }","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleRequestModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleRequestModel"}]},"examples":["\n [\n {'string_to_replace': 'a', 'type': 'alias', 'alias': 'b' },\n {'string_to_replace': 'c', 'type': 'phoneme', 'phoneme': 'd', 'alphabet': 'ipa' }\n ]"],"title":"Rules"}},"required":["rules"],"title":"Body_Set_rules_on_the_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__set_rules_post"},"Body_Set_workspace_Third_Party_Disabling_policy_v1_workspaces_api_keys_third_party_disabling_post":{"type":"object","properties":{"third_party_disable_allowed":{"description":"`true` forces every key in the workspace to be disable-able by its holder; `false` forbids it for every key; `null` clears the override (per-key values and the plan default apply).","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Third Party Disable Allowed"}},"title":"Body_Set_workspace_Third_Party_Disabling_policy_v1_workspaces_api_keys_third_party_disabling_post"},"Body_Share_workspace_resource_v1_workspace_resources__resource_id__share_post":{"type":"object","properties":{"role":{"description":"Role to grant to the target: one of 'admin', 'editor', 'commenter', or 'viewer'.","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Role"},"resource_type":{"description":"Resource type of the target resource.","$ref":"#/components/schemas/WorkspaceResourceType"},"user_email":{"description":"The email of the user or service account.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"group_id":{"description":"The ID of the target group. Use 'default' to set the resource's baseline role — every workspace member receives this role unless they hold a higher one through a direct user grant, group membership, or workspace (service account) API key.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"},"workspace_api_key_id":{"description":"The ID of the target workspace (service account) API key. This is not the API key string itself that you pass in the header for authentication — it is the key's ID, which workspace admins can find under Developers → Service Accounts.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Api Key Id"}},"required":["role","resource_type"],"title":"Body_Share_workspace_resource_v1_workspace_resources__resource_id__share_post"},"Body_Simulates_a_conversation__Stream__v1_convai_agents__agent_id__simulate_conversation_stream_post":{"type":"object","properties":{"simulation_specification":{"description":"A specification detailing how the conversation should be simulated","$ref":"#/components/schemas/ConversationSimulationSpecification"},"extra_evaluation_criteria":{"description":"A list of evaluation criteria to test","anyOf":[{"items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"type":"array"},{"type":"null"}],"title":"Extra Evaluation Criteria"},"new_turns_limit":{"description":"Maximum number of new turns to generate in the conversation simulation","type":"integer","default":10000,"title":"New Turns Limit"}},"required":["simulation_specification"],"title":"Body_Simulates_a_conversation__Stream__v1_convai_agents__agent_id__simulate_conversation_stream_post"},"Body_Simulates_a_conversation_v1_convai_agents__agent_id__simulate_conversation_post":{"type":"object","properties":{"simulation_specification":{"description":"A specification detailing how the conversation should be simulated","$ref":"#/components/schemas/ConversationSimulationSpecification"},"extra_evaluation_criteria":{"description":"A list of evaluation criteria to test","anyOf":[{"items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"type":"array"},{"type":"null"}],"title":"Extra Evaluation Criteria"},"new_turns_limit":{"description":"Maximum number of new turns to generate in the conversation simulation","type":"integer","default":10000,"title":"New Turns Limit"}},"required":["simulation_specification"],"title":"Body_Simulates_a_conversation_v1_convai_agents__agent_id__simulate_conversation_post"},"Body_Sound_Generation_v1_sound_generation_post":{"type":"object","properties":{"text":{"description":"The text that will get converted into a sound effect.","type":"string","examples":["A large, ancient wooden door slowly opening in an eerie, abandoned castle.."],"title":"Text"},"loop":{"description":"Whether to create a sound effect that loops smoothly. Only available for the 'eleven_text_to_sound_v2 model'.","type":"boolean","default":false,"title":"Loop"},"duration_seconds":{"description":"The duration of the sound which will be generated in seconds. Must be at least 0.5 and at most 30. If set to None we will guess the optimal duration using the prompt. Defaults to None.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"prompt_influence":{"description":"A higher prompt influence makes your generation follow the prompt more closely while also making generations less variable. Must be a value between 0 and 1. Defaults to 0.3.","default":0.3,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Prompt Influence"},"model_id":{"description":"The model ID to use for the sound generation.","type":"string","default":"eleven_text_to_sound_v2","examples":["eleven_text_to_sound_v2"],"title":"Model Id"}},"required":["text"],"title":"Body_Sound_Generation_v1_sound_generation_post","x-fern-type-name":"CreateSoundEffectRequest"},"Body_Speech_to_Speech_Streaming_v1_speech_to_speech__voice_id__stream_post":{"type":"object","properties":{"audio":{"description":"The audio file which holds the content and emotion that will control the generated speech.","type":"string","format":"binary","title":"Audio"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for speech to speech, you can check this using the can_do_voice_conversion property.","type":"string","default":"eleven_english_sts_v2","title":"Model Id"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request. Needs to be send as a JSON encoded string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Settings"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"remove_background_noise":{"description":"If set, will remove the background noise from your audio input using our audio isolation model. Only applies to Voice Changer.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"}},"required":["audio"],"title":"Body_Speech_to_Speech_Streaming_v1_speech_to_speech__voice_id__stream_post","x-fern-type-name":"SpeechToSpeechStreamRequest"},"Body_Speech_to_Speech_v1_speech_to_speech__voice_id__post":{"type":"object","properties":{"audio":{"description":"The audio file which holds the content and emotion that will control the generated speech.","type":"string","format":"binary","title":"Audio"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for speech to speech, you can check this using the can_do_voice_conversion property.","type":"string","default":"eleven_english_sts_v2","title":"Model Id"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request. Needs to be send as a JSON encoded string.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Settings"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"remove_background_noise":{"description":"If set, will remove the background noise from your audio input using our audio isolation model. Only applies to Voice Changer.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","default":"other","anyOf":[{"type":"string","enum":["pcm_s16le_16","other"]},{"type":"null"}],"examples":["pcm_s16le_16","other"],"title":"File Format"}},"required":["audio"],"title":"Body_Speech_to_Speech_v1_speech_to_speech__voice_id__post","x-fern-type-name":"SpeechToSpeechRequest"},"Body_Speech_to_Text_v1_speech_to_text_post":{"type":"object","properties":{"model_id":{"description":"The ID of the model to use for transcription.","type":"string","enum":["scribe_v2","scribe_v1"],"title":"Model Id"},"file":{"description":"The file to transcribe (100ms minimum audio length). All major audio and video formats are supported. Exactly one of the file or cloud_storage_url parameters must be provided. The file size must be less than 5.0GB.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"language_code":{"description":"An ISO-639-1 or ISO-639-3 language_code corresponding to the language of the audio file. Can sometimes improve transcription performance if known beforehand. Defaults to null, in this case the language is predicted automatically.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"tag_audio_events":{"description":"Whether to tag audio events like (laughter), (footsteps), etc. in the transcription.","type":"boolean","default":true,"title":"Tag Audio Events"},"num_speakers":{"description":"The maximum amount of speakers talking in the uploaded file. Can help with predicting who speaks when. The maximum amount of speakers that can be predicted is 32. Defaults to null, in this case the amount of speakers is set to the maximum value the model supports.","anyOf":[{"type":"integer","maximum":32,"minimum":1},{"type":"null"}],"title":"Num Speakers"},"timestamps_granularity":{"description":"The granularity of the timestamps in the transcription. 'word' provides word-level timestamps and 'character' provides character-level timestamps per word.","type":"string","default":"word","enum":["none","word","character"],"title":"Timestamps Granularity"},"diarize":{"description":"Whether to annotate which speaker is currently talking in the uploaded file.","type":"boolean","default":false,"title":"Diarize"},"diarization_threshold":{"description":"Diarization threshold to apply during speaker diarization. A higher value means there will be a lower chance of one speaker being diarized as two different speakers but also a higher chance of two different speakers being diarized as one speaker (less total speakers predicted). A low value means there will be a higher chance of one speaker being diarized as two different speakers but also a lower chance of two different speakers being diarized as one speaker (more total speakers predicted). Can only be set when diarize=True and num_speakers=None. Defaults to None, in which case we will choose a threshold based on the model_id (0.22 usually).","anyOf":[{"type":"number","maximum":0.4,"minimum":0.1},{"type":"null"}],"title":"Diarization Threshold"},"additional_formats":{"description":"A list of additional formats to export the transcript to.","$ref":"#/components/schemas/AdditionalFormats","examples":[[{"format":"srt","include_speakers":true,"include_timestamps":true},{"format":"txt","include_speakers":false}]]},"file_format":{"description":"The format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.","type":"string","default":"other","enum":["pcm_s16le_16","other"],"examples":["pcm_s16le_16","other"],"title":"File Format"},"cloud_storage_url":{"description":"[Deprecated] This parameter is deprecated and will be removed in the future. Use 'source_url' instead.The HTTPS URL of the file to transcribe. Exactly one of the file or cloud_storage_url parameters must be provided. The file must be accessible via HTTPS and the file size must be less than 2GB. Any valid HTTPS URL is accepted, including URLs from cloud storage providers (AWS S3, Google Cloud Storage, Cloudflare R2, etc.), CDNs, or any other HTTPS source. URLs can be pre-signed or include authentication tokens in query parameters.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"examples":["https://storage.googleapis.com/my-bucket/folder/audio.mp3","https://my-bucket.s3.us-west-2.amazonaws.com/folder/audio.mp3","https://account123.r2.cloudflarestorage.com/my-bucket/audio.mp3","https://cdn.example.com/media/audio.wav"],"title":"Cloud Storage Url","x-fern-ignore":false,"x-fern-audiences":["undocumented"]},"source_url":{"description":"The URL of an audio or video file to transcribe. Supports hosted video or audio files, YouTube video URLs, TikTok video URLs, and other video hosting services.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://storage.googleapis.com/my-bucket/folder/audio.mp3","https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.tiktok.com/@barstoolsports/video/7285745795779939614"],"title":"Source Url"},"webhook":{"description":"Whether to send the transcription result to configured speech-to-text webhooks. If set the request will return early without the transcription, which will be delivered later via webhook.","type":"boolean","default":false,"title":"Webhook"},"webhook_id":{"description":"Optional specific webhook ID to send the transcription result to. Only valid when webhook is set to true. If not provided, transcription will be sent to all configured speech-to-text webhooks.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Id"},"temperature":{"description":"Controls the randomness of the transcription output. Accepts values between 0.0 and 2.0, where higher values result in more diverse and less deterministic results. If omitted, we will use a temperature based on the model you selected which is usually 0.","anyOf":[{"type":"number","maximum":2,"minimum":0},{"type":"null"}],"title":"Temperature"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be an integer between 0 and 2147483647.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[12345],"title":"Seed"},"use_multi_channel":{"description":"Whether the audio file contains multiple channels where each channel contains a single speaker. When enabled, each channel is transcribed independently. By default a separate transcript is returned per channel; set multichannel_output_style='combined' to instead receive a single transcript with all channels merged and sorted by time. Each word in the response includes a 'channel_index' field indicating which channel it was spoken on. A maximum of 5 channels is supported. Each channel is billed independently at the full audio duration, so cost scales linearly with the number of channels.","type":"boolean","default":false,"title":"Use Multi Channel"},"multichannel_output_style":{"description":"Controls the response shape when use_multi_channel is enabled. 'separate' (default) returns one transcript per channel under 'transcripts'. 'combined' merges all channels into a single transcript whose words are sorted by start time, each carrying a 'channel_index' - matching the single-channel response shape. 'combined' requires timestamps (timestamps_granularity must not be 'none') and does not support entity detection or redaction.","type":"string","default":"separate","enum":["separate","combined"],"title":"Multichannel Output Style"},"webhook_metadata":{"description":"Optional metadata to be included in the webhook response. This should be a JSON string representing an object with a maximum depth of 2 levels and maximum size of 16KB. Useful for tracking internal IDs, job references, or other contextual information.","anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"examples":["{\"user_id\": \"123\", \"session_id\": \"abc-def-ghi\"}","{\"request_type\": \"interview\", \"participant_name\": \"John Doe\"}"],"title":"Webhook Metadata"},"entity_detection":{"description":"Detect entities in the transcript. Can be 'all' to detect all entities, a single entity type or category string, or a list of entity types/categories. Categories include 'pii', 'phi', 'pci', 'other', 'offensive_language'. When enabled, detected entities will be returned in the 'entities' field with their text, type, and character positions. Usage of this parameter will incur an additional 30% surcharge on the base transcription cost.","anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Entity Detection"},"no_verbatim":{"description":"If true, the transcription will not have any filler words, false starts and non-speech sounds. Only supported with scribe_v2 model.","type":"boolean","default":false,"title":"No Verbatim"},"use_speaker_library":{"description":"Whether to use the speaker library for identifying known speakers during diarization. When enabled and diarize is true, detected speakers will be matched against registered speakers in the workspace's speaker library.","type":"boolean","default":false,"title":"Use Speaker Library"},"detect_speaker_roles":{"description":"Whether to detect speaker roles (agent vs customer). Requires diarize=true. Cannot be used with use_multi_channel=true. When enabled, speaker_id values will be 'agent' and 'customer' instead of 'speaker_0', 'speaker_1', etc. Usage incurs an additional 10% surcharge on base transcription cost.","type":"boolean","default":false,"title":"Detect Speaker Roles"},"entity_redaction":{"description":"Redact entities from the transcript text. Accepts the same format as entity_detection: 'all', a category ('pii', 'phi'), or specific entity types. Must be a subset of entity_detection. When redaction is enabled, the entities field will not be returned. Usage of this parameter will incur an additional 30% surcharge on the base transcription cost.","anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Entity Redaction"},"entity_redaction_mode":{"description":"How to format redacted entities. 'redacted' replaces with {REDACTED}, 'entity_type' replaces with {ENTITY_TYPE}, 'enumerated_entity_type' replaces with {ENTITY_TYPE_N} where N enumerates each occurrence. Only used when entity_redaction is set.","type":"string","default":"enumerated_entity_type","title":"Entity Redaction Mode"},"keyterms":{"description":"A list of keyterms to bias the transcription towards. The keyterms are words or phrases you want the model to recognise more accurately. The number of keyterms cannot exceed 1000. The length of each keyterm must be less than 50 characters. Keyterms can contain at most 5 words (after normalisation). For example [\"hello\", \"world\", \"technical term\"]. The following characters are not supported: `<`, `>`, `{`, `}`, `[`, `]`, `\\`. Usage of this parameter will incur an additional 20% surcharge on the base transcription cost. When more than 100 keyterms are provided, a minimum billable duration of 20 seconds applies per request.","type":"array","items":{"type":"string"},"default":[],"title":"Keyterms"}},"required":["model_id"],"title":"Body_Speech_to_Text_v1_speech_to_text_post"},"Body_Stem_separation_v1_music_stem_separation_post":{"type":"object","properties":{"file":{"description":"The audio file to separate into stems.","type":"string","format":"binary","title":"File"},"stem_variation_id":{"description":"The id of the stem variation to use.","type":"string","default":"six_stems_v1","enum":["two_stems_v1","six_stems_v1"],"title":"Stem Variation Id"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"}},"required":["file"],"title":"Body_Stem_separation_v1_music_stem_separation_post"},"Body_Stream_Studio_project_audio_v1_studio_projects__project_id__snapshots__project_snapshot_id__stream_post":{"type":"object","properties":{"convert_to_mpeg":{"description":"Whether to convert the audio to mpeg format.","type":"boolean","default":false,"title":"Convert To Mpeg"}},"title":"Body_Stream_Studio_project_audio_v1_studio_projects__project_id__snapshots__project_snapshot_id__stream_post"},"Body_Stream_chapter_audio_v1_studio_projects__project_id__chapters__chapter_id__snapshots__chapter_snapshot_id__stream_post":{"type":"object","properties":{"convert_to_mpeg":{"description":"Whether to convert the audio to mpeg format.","type":"boolean","default":false,"title":"Convert To Mpeg"}},"title":"Body_Stream_chapter_audio_v1_studio_projects__project_id__chapters__chapter_id__snapshots__chapter_snapshot_id__stream_post"},"Body_Stream_composed_music_v1_music_stream_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength","x-fern-ignore":true},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"}},"title":"Body_Stream_composed_music_v1_music_stream_post"},"Body_Stream_composed_music_with_a_detailed_response_v1_music_detailed_stream_post":{"type":"object","properties":{"prompt":{"description":"A simple text prompt to generate a song from. Cannot be used in conjunction with `composition_plan`.","anyOf":[{"type":"string","maxLength":4100},{"type":"null"}],"title":"Prompt"},"generation_mode":{"description":"Optional generation mode hint for prompt-based music generation. Can only be used with `prompt`.","anyOf":[{"$ref":"#/components/schemas/MusicGenerationMode"},{"type":"null"}],"x-fern-ignore":true},"music_prompt":{"description":"A music prompt. Deprecated. Use `composition_plan` instead.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"type":"null"}],"deprecated":true,"x-fern-ignore":true},"lyrics_text":{"description":"The lyrics text to use for the generation.","anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Lyrics Text","x-fern-ignore":true},"composition_plan":{"description":"A detailed composition plan to guide music generation. Cannot be used in conjunction with `prompt`.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}]},{"type":"null"}],"title":"Composition Plan"},"music_length_ms":{"description":"The length of the song to generate in milliseconds. Used only in conjunction with `prompt`. Must be between 3000ms and 600000ms. Optional - if not provided, the model will choose a length based on the prompt.","anyOf":[{"type":"integer","maximum":600000,"minimum":3000},{"type":"null"}],"title":"Music Length Ms"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"seed":{"description":"Random seed to initialize the music generation process. Providing the same seed with the same parameters can help achieve more consistent results, but exact reproducibility is not guaranteed and outputs may change across system updates. Cannot be used in conjunction with prompt.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"title":"Seed"},"force_instrumental":{"description":"If true, guarantees that the generated song will be instrumental. If false, the song may or may not be instrumental depending on the `prompt`. Can only be used with `prompt`.","type":"boolean","default":false,"title":"Force Instrumental"},"finetune_id":{"description":"The ID of the finetune to use for the generation","anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Finetune Id"},"finetune_strength":{"description":"How strongly the finetune influences the generation. Defaults to 1.0 (full strength). Lower values soften the influence of the finetune, leaving more room for prompt-level steering. Only meaningful when `finetune_id` is also provided.","type":"number","default":1,"exclusiveMinimum":0,"maximum":2,"title":"Finetune Strength","x-fern-ignore":true},"use_phonetic_names":{"description":"If true, proper names in the prompt will be phonetically spelled in the lyrics for better pronunciation by the music model. The original names will be restored in word timestamps.","type":"boolean","default":false,"title":"Use Phonetic Names","x-fern-ignore":true},"store_for_inpainting":{"description":"Whether to store the generated song for inpainting.","type":"boolean","default":false,"title":"Store For Inpainting"},"with_timestamps":{"description":"Whether to return the timestamps of the words in the generated song.","type":"boolean","default":false,"title":"With Timestamps"}},"title":"Body_Stream_composed_music_with_a_detailed_response_v1_music_detailed_stream_post"},"Body_Submit_a_batch_call_request__v1_convai_batch_calling_submit_post":{"type":"object","properties":{"call_name":{"type":"string","title":"Call Name"},"agent_id":{"type":"string","title":"Agent Id"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/OutboundCallRecipient"},"maxItems":10000,"title":"Recipients"},"scheduled_time_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scheduled Time Unix"},"agent_phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Phone Number Id"},"whatsapp_params":{"anyOf":[{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"telephony_call_config":{"default":{"ringing_timeout_secs":60,"twilio_call_recording_enabled":false},"$ref":"#/components/schemas/TelephonyCallConfig"},"target_concurrency_limit":{"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages.","anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Target Concurrency Limit"}},"required":["call_name","agent_id","recipients"],"title":"Body_Submit_a_batch_call_request__v1_convai_batch_calling_submit_post"},"Body_Text_to_dialogue__multi_voice__streaming_v1_text_to_dialogue_stream_post":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_Text_to_dialogue__multi_voice__streaming_v1_text_to_dialogue_stream_post"},"Body_Text_to_dialogue__multi_voice__v1_text_to_dialogue_post":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_Text_to_dialogue__multi_voice__v1_text_to_dialogue_post"},"Body_Transcribes_segments_v1_dubbing_resource__dubbing_id__transcribe_post":{"type":"object","properties":{"segments":{"description":"Transcribe this specific list of segments.","type":"array","items":{"type":"string"},"title":"Segments"}},"required":["segments"],"title":"Body_Transcribes_segments_v1_dubbing_resource__dubbing_id__transcribe_post"},"Body_Translates_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__translate_post":{"type":"object","properties":{"segments":{"description":"Translate only this list of segments.","type":"array","items":{"type":"string"},"title":"Segments"},"languages":{"description":"Translate only these languages for each segment.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"}},"required":["segments","languages"],"title":"Body_Translates_all_or_some_segments_and_languages_v1_dubbing_resource__dubbing_id__translate_post"},"Body_Unshare_workspace_resource_v1_workspace_resources__resource_id__unshare_post":{"type":"object","properties":{"resource_type":{"description":"Resource type of the target resource.","$ref":"#/components/schemas/WorkspaceResourceType"},"user_email":{"description":"The email of the user or service account.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"group_id":{"description":"The ID of the target group. Use 'default' to set the resource's baseline role — every workspace member receives this role unless they hold a higher one through a direct user grant, group membership, or workspace (service account) API key.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"},"workspace_api_key_id":{"description":"The ID of the target workspace (service account) API key. This is not the API key string itself that you pass in the header for authentication — it is the key's ID, which workspace admins can find under Developers → Service Accounts.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Api Key Id"}},"required":["resource_type"],"title":"Body_Unshare_workspace_resource_v1_workspace_resources__resource_id__unshare_post"},"Body_Update_PVC_voice_sample_v1_voices_pvc__voice_id__samples__sample_id__post":{"type":"object","properties":{"remove_background_noise":{"description":"If set will remove background noise for voice samples using our audio isolation model. If the samples do not include background noise, it can make the quality worse.","type":"boolean","default":false,"examples":[true],"title":"Remove Background Noise"},"selected_speaker_ids":{"description":"Speaker IDs to be used for PVC training. Make sure you send all the speaker IDs you want to use for PVC training in one request because the last request will override the previous ones.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":["speaker_0"],"title":"Selected Speaker Ids"},"trim_start_time":{"description":"The start time of the audio to be used for PVC training. Time should be in milliseconds","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[0],"title":"Trim Start Time"},"trim_end_time":{"description":"The end time of the audio to be used for PVC training. Time should be in milliseconds","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[10],"title":"Trim End Time"},"file_name":{"description":"The name of the audio file to be used for PVC training.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["sample.mp3"],"title":"File Name"}},"title":"Body_Update_PVC_voice_sample_v1_voices_pvc__voice_id__samples__sample_id__post"},"Body_Update_Studio_project_content_v1_studio_projects__project_id__content_post":{"type":"object","properties":{"from_url":{"description":"An optional URL from which we will extract content to initialize the Studio project. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["https://blog.elevenlabs.io/the_first_ai_that_can_laugh/"],"title":"From Url"},"from_document":{"description":"An optional .epub, .pdf, .txt or similar file can be provided. If provided, we will initialize the Studio project with its content. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.","anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"From Document"},"from_content_json":{"description":"\n An optional content to initialize the Studio project with. If this is set, 'from_url' and 'from_document' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.\n\n Example:\n [{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]\n ","type":"string","examples":["[{\"name\": \"Chapter A\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"A\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"B\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h1\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"C\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"D\", \"type\": \"tts_node\"}]}]}, {\"name\": \"Chapter B\", \"blocks\": [{\"sub_type\": \"p\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"E\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"F\", \"type\": \"tts_node\"}]}, {\"sub_type\": \"h2\", \"nodes\": [{\"voice_id\": \"6lCwbsX1yVjD49QmpkT0\", \"text\": \"G\", \"type\": \"tts_node\"}, {\"voice_id\": \"6lCwbsX1yVjD49QmpkT1\", \"text\": \"H\", \"type\": \"tts_node\"}]}]}]"],"title":"From Content Json"},"auto_convert":{"description":"Whether to auto convert the Studio project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"}},"title":"Body_Update_Studio_project_content_v1_studio_projects__project_id__content_post"},"Body_Update_Studio_project_v1_studio_projects__project_id__post":{"type":"object","properties":{"name":{"description":"The name of the Studio project, used for identification only.","type":"string","examples":["Project 1"],"title":"Name"},"default_title_voice_id":{"description":"The voice_id that corresponds to the default voice used for new titles.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The voice_id that corresponds to the default voice used for new paragraphs.","type":"string","examples":["21m00Tcm4TlvDq8ikWAM"],"title":"Default Paragraph Voice Id"},"title":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Romeo and Juliet"],"title":"Title"},"author":{"description":"An optional name of the author of the Studio project, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["William Shakespeare"],"title":"Author"},"isbn_number":{"description":"An optional ISBN number of the Studio project you want to create, this will be added as metadata to the mp3 file on Studio project or chapter download.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["0-306-40615-2"],"title":"Isbn Number"},"volume_normalization":{"description":"When the Studio project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements","type":"boolean","default":false,"examples":[false],"title":"Volume Normalization"}},"required":["name","default_title_voice_id","default_paragraph_voice_id"],"title":"Body_Update_Studio_project_v1_studio_projects__project_id__post"},"Body_Update_agent_branch_v1_convai_agents__agent_id__branches__branch_id__patch":{"type":"object","properties":{"name":{"description":"New name for the branch. Must be unique within the agent.","anyOf":[{"type":"string","maxLength":140,"minLength":1},{"type":"null"}],"title":"Name"},"is_archived":{"description":"Whether the branch should be archived","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Archived"},"protection_status":{"description":"The protection level for the branch","anyOf":[{"$ref":"#/components/schemas/BranchProtectionStatus"},{"type":"null"}]}},"title":"Body_Update_agent_branch_v1_convai_agents__agent_id__branches__branch_id__patch"},"Body_Update_agent_test_folder_v1_convai_agent_testing_folders__folder_id__patch":{"type":"object","properties":{"name":{"description":"The new name for the folder","type":"string","title":"Name"}},"required":["name"],"title":"Body_Update_agent_test_folder_v1_convai_agent_testing_folders__folder_id__patch"},"Body_Update_audio_native_Project_content_v1_audio_native__project_id__content_post":{"type":"object","properties":{"file":{"description":"Either txt or HTML input file containing the article content. HTML should be formatted as follows '<html><body><div><p>Your content</p><h5>More of your content</h5><p>Some more of your content</p></div></body></html>'","type":"string","format":"binary","title":"File"},"auto_convert":{"description":"Whether to auto convert the project to audio or not.","type":"boolean","default":false,"title":"Auto Convert"},"auto_publish":{"description":"Whether to auto publish the new project snapshot after it's converted.","type":"boolean","default":false,"title":"Auto Publish"}},"title":"Body_Update_audio_native_Project_content_v1_audio_native__project_id__content_post"},"Body_Update_audio_native_content_from_URL_v1_audio_native_content_post":{"type":"object","properties":{"url":{"description":"URL of the page to extract content from.","type":"string","examples":["https://elevenlabs.io/blog/the_first_ai_that_can_laugh/"],"title":"Url"},"author":{"description":"Author used in the player and inserted at the start of the uploaded article. If not provided, the default author set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"title":{"description":"Title used in the player and inserted at the top of the uploaded article. If not provided, the default title set in the Player settings is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"required":["url"],"title":"Body_Update_audio_native_content_from_URL_v1_audio_native_content_post"},"Body_Update_chapter_v1_studio_projects__project_id__chapters__chapter_id__post":{"type":"object","properties":{"name":{"description":"The name of the chapter, used for identification only.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Chapter 1"],"title":"Name"},"content":{"anyOf":[{"$ref":"#/components/schemas/ChapterContentInputModel"},{"type":"null"}],"description":"The chapter content to use."}},"title":"Body_Update_chapter_v1_studio_projects__project_id__chapters__chapter_id__post"},"Body_Update_document_v1_convai_knowledge_base__documentation_id__patch":{"type":"object","properties":{"name":{"description":"A custom, human-readable name for the document.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Updated content for the document. Only supported for text documents, URL documents with auto-sync disabled, and file documents.","title":"Content"}},"title":"Body_Update_document_v1_convai_knowledge_base__documentation_id__patch"},"Body_Update_file_document_v1_convai_knowledge_base__documentation_id__update_file_patch":{"type":"object","properties":{"file":{"description":"Documentation that the agent will have access to in order to interact with users.","type":"string","format":"binary","title":"File"}},"required":["file"],"title":"Body_Update_file_document_v1_convai_knowledge_base__documentation_id__update_file_patch"},"Body_Update_member_v1_workspace_members_post":{"type":"object","properties":{"email":{"description":"Email of the target user.","type":"string","title":"Email"},"is_locked":{"description":"Whether to lock or unlock the user account.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Locked"},"workspace_role":{"description":"The workspace role of the user. This is deprecated, use `workspace_seat_type` instead.","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}],"deprecated":true,"examples":["workspace_admin","workspace_member"]},"workspace_seat_type":{"description":"The workspace seat type","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}]}},"required":["email"],"title":"Body_Update_member_v1_workspace_members_post","x-fern-type-name":"UpdateMemberRequest"},"Body_Update_metadata_for_a_speaker_v1_dubbing_resource__dubbing_id__speaker__speaker_id__patch":{"type":"object","properties":{"speaker_name":{"description":"Name to attribute to this speaker.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Name"},"voice_id":{"description":"Either the identifier of a voice from the ElevenLabs voice library, or one of ['track-clone', 'clip-clone'].","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_stability":{"description":"For models that support it, the voice similarity value to use. This will default to 0.65, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Stability"},"voice_similarity":{"description":"For models that support it, the voice similarity value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Similarity"},"voice_style":{"description":"For models that support it, the voice style value to use. This will default to 1.0, with a valid range of [0.0, 1.0].","anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Style"},"languages":{"description":"Languages to apply these changes to. If empty, will apply to all languages.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"}},"title":"Body_Update_metadata_for_a_speaker_v1_dubbing_resource__dubbing_id__speaker__speaker_id__patch"},"Body_Update_order_v1_productions_orders__order_id__patch":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/UpdateOrderRequest"}},"required":["request"],"title":"Body_Update_order_v1_productions_orders__order_id__patch"},"Body_Update_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__patch":{"type":"object","properties":{"archived":{"description":"Whether to archive the pronunciation dictionary.","type":"boolean","examples":[true],"title":"Archived"},"name":{"description":"The name of the pronunciation dictionary, used for identification only.","type":"string","examples":["My Dictionary"],"title":"Name"}},"title":"Body_Update_pronunciation_dictionary_v1_pronunciation_dictionaries__pronunciation_dictionary_id__patch"},"Body_Update_workspace_webhook_v1_workspace_webhooks__webhook_id__patch":{"type":"object","properties":{"is_disabled":{"description":"Whether to disable or enable the webhook","type":"boolean","examples":[true],"title":"Is Disabled"},"name":{"description":"The display name of the webhook (used for display purposes only).","type":"string","examples":["My Callback Webhook"],"title":"Name"},"retry_enabled":{"description":"Whether to enable automatic retries for transient failures (5xx, 429, timeout)","anyOf":[{"type":"boolean"},{"type":"null"}],"examples":[true],"title":"Retry Enabled"},"request_headers":{"description":"A list of request headers to include with the webhook delivery (optional)","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Request Headers"},"events":{"description":"The complete set of workspace-level events this webhook should be subscribed to. The webhook is added to the events in the list and removed from any not in the list. Omit to leave the current event subscriptions unchanged.","anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceWebhookEventType"},"type":"array"},{"type":"null"}],"examples":[["voice_library_removal_notice","speech_to_text"]],"title":"Events"}},"required":["is_disabled","name"],"title":"Body_Update_workspace_webhook_v1_workspace_webhooks__webhook_id__patch"},"Body_Upload_file_v1_convai_conversations__conversation_id__files_post":{"type":"object","properties":{"file":{"description":"Image or PDF file to upload","type":"string","format":"binary","title":"File"}},"required":["file"],"title":"Body_Upload_file_v1_convai_conversations__conversation_id__files_post"},"Body_Upload_music_v1_music_upload_post":{"type":"object","properties":{"file":{"description":"The audio file to upload.","type":"string","format":"binary","title":"File"},"extract_composition_plan":{"description":"Whether to generate and return the composition plan for the uploaded song. Pass a model id (`music_v1` or `music_v2`) to control which composition plan format is returned. Passing `true`/`false` is deprecated; `true` defaults to the `music_v1` plan format. Enabling this will increase the latency.","default":false,"enum":[true,false,"music_v1","music_v2"],"anyOf":[{"type":"boolean"},{"type":"string"}],"title":"Extract Composition Plan"},"with_timestamps":{"description":"Whether to transcribe the uploaded song and return word-level timestamps. If True, the response will include words_timestamps but will increase the latency.","type":"boolean","default":false,"title":"With Timestamps"}},"required":["file"],"title":"Body_Upload_music_v1_music_upload_post"},"Body_Upsert_order_item_v1_productions_orders__order_id__items_post":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/UpsertOrderItemRequest"}},"required":["request"],"title":"Body_Upsert_order_item_v1_productions_orders__order_id__items_post"},"Body_Verify_PVC_voice_captcha_v1_voices_pvc__voice_id__captcha_post":{"type":"object","properties":{"recording":{"description":"Audio recording of the user","type":"string","format":"binary","title":"Recording"}},"required":["recording"],"title":"Body_Verify_PVC_voice_captcha_v1_voices_pvc__voice_id__captcha_post"},"Body_Video_to_Music_v1_music_video_to_music_post":{"type":"object","properties":{"videos":{"description":"\n One or more video files sent via FormData array (multipart/form-data). They will be combined into one codec in order.\n A maximum of 10 videos is allowed, where the total size of the combined video is limited to 200MB.\n In total, the video can be up to 600 seconds long. Note that combining multiple videos may increase the request duration significantly. If possible, combine the videos beforehand.\n ","type":"array","items":{"type":"string","format":"binary"},"maxItems":10,"minItems":1,"title":"Videos"},"description":{"description":"Optional text description of the music you want. A maximum of 1000 characters is allowed.","anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"title":"Description"},"tags":{"description":"Optional list of style tags (e.g. ['upbeat', 'cinematic']). A maximum of 10 tags is allowed.","type":"array","items":{"type":"string"},"default":[],"maxItems":10,"minItems":0,"title":"Tags"},"model_id":{"description":"The model to use for the generation.","type":"string","default":"music_v1","enum":["music_v1","music_v2"],"title":"Model Id"},"sign_with_c2pa":{"description":"Whether to sign the generated song with C2PA. Applicable only for mp3 files.","type":"boolean","default":false,"title":"Sign With C2Pa"}},"required":["videos"],"title":"Body_Video_to_Music_v1_music_video_to_music_post"},"Body_create_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys_post":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"permissions":{"description":"The permissions of the XI API.","anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"string","const":"all"}],"title":"Permissions"},"character_limit":{"description":"The character limit of the XI API key. If provided this will limit the usage of this api key to n characters per month where n is the chosen value. Requests that incur charges will fail after reaching this monthly limit.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Limit"},"allowed_ips":{"description":"List of IP addresses or CIDR ranges allowed to use this API key. Each entry may be a CIDR range (e.g. '10.0.0.0/24') or a bare IP address (normalized to /32 or /128). On create, omit or pass null to allow all IPs. On update, omit to leave the allowlist unchanged, or pass \"clear\" to remove it.","anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1},{"type":"null"}],"title":"Allowed Ips"},"third_party_disable_allowed":{"description":"Whether the holder of this key may disable it via the self-disable endpoint. On create, omit or pass null to use the workspace's default (enabled for non-Enterprise plans, disabled for Enterprise plans). On update, omit to leave it unchanged, or pass \"clear\" to reset it to the workspace default. Only honored for workspaces with self-disable access enabled.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Third Party Disable Allowed"}},"required":["name","permissions"],"title":"Body_create_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys_post"},"Body_create_service_account_v1_service_accounts_post":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"default_sharing_groups":{"description":"List of groups with their permission levels to share with by default. Each entry should specify a group_id and a permission_level (admin, editor, or viewer).","anyOf":[{"items":{"$ref":"#/components/schemas/DefaultSharingGroupConfig"},"type":"array"},{"type":"null"}],"title":"Default Sharing Groups"}},"required":["name"],"title":"Body_create_service_account_v1_service_accounts_post"},"Body_edit_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys__api_key_id__patch":{"type":"object","properties":{"is_enabled":{"description":"Whether to enable or disable the API key.","default":"no_update","anyOf":[{"type":"boolean"},{"type":"string","const":"no_update"}],"title":"Is Enabled"},"name":{"description":"The name of the XI API key to use (used for identification purposes only).","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Sneaky Fox"],"title":"Name"},"permissions":{"description":"The permissions of the XI API.","default":"no_update","anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"string","enum":["all","no_update"]}],"title":"Permissions"},"character_limit":{"description":"The character limit of the XI API key. If provided this will limit the usage of this api key to n characters per month where n is the chosen value. Requests that incur charges will fail after reaching this monthly limit.","default":"no_update","anyOf":[{"type":"integer"},{"type":"string","enum":["clear","no_update"]},{"type":"null"}],"title":"Character Limit"},"allowed_ips":{"description":"List of IP addresses or CIDR ranges allowed to use this API key. Each entry may be a CIDR range (e.g. '10.0.0.0/24') or a bare IP address (normalized to /32 or /128). On create, omit or pass null to allow all IPs. On update, omit to leave the allowlist unchanged, or pass \"clear\" to remove it.","default":"no_update","anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1},{"type":"string","enum":["clear","no_update"]}],"title":"Allowed Ips"},"third_party_disable_allowed":{"description":"Whether the holder of this key may disable it via the self-disable endpoint. On create, omit or pass null to use the workspace's default (enabled for non-Enterprise plans, disabled for Enterprise plans). On update, omit to leave it unchanged, or pass \"clear\" to reset it to the workspace default. Only honored for workspaces with self-disable access enabled.","default":"no_update","anyOf":[{"type":"boolean"},{"type":"string","enum":["clear","no_update"]}],"title":"Third Party Disable Allowed"}},"title":"Body_edit_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys__api_key_id__patch"},"Body_text_to_dialogue_full_with_timestamps":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_text_to_dialogue_full_with_timestamps"},"Body_text_to_dialogue_stream_with_timestamps":{"type":"object","properties":{"inputs":{"description":"A list of dialogue inputs, each containing text and a voice ID which will be converted into speech. The maximum number of unique voice IDs is 10. For reliable generation, keep the total character count across all `inputs[].text` values at or below 2,000 characters per request. Longer requests can terminate early in streaming responses or return a validation error.","type":"array","items":{"$ref":"#/components/schemas/DialogueInput"},"examples":[[{"text":"Hello, how are you?","voice_id":"bYTqZQo3Jz7LQtmGTgwi"},{"text":"I'm doing well, thank you!","voice_id":"6lCwbsX1yVjD49QmpkTR"}]],"title":"Inputs"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_v3","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"settings":{"description":"Settings controlling the dialogue generation.","anyOf":[{"$ref":"#/components/schemas/ModelSettingsResponseModel"},{"type":"null"}],"examples":[{"stability":0.5}],"title":"Settings"},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"}},"required":["inputs"],"title":"Body_text_to_dialogue_stream_with_timestamps"},"Body_text_to_speech_full":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_full"},"Body_text_to_speech_full_with_timestamps":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","type":"array","items":{"type":"string"},"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","type":"array","items":{"type":"string"},"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_full_with_timestamps"},"Body_text_to_speech_stream":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_stream"},"Body_text_to_speech_stream_with_timestamps":{"type":"object","properties":{"text":{"description":"The text that will get converted into speech.","type":"string","examples":["This is a test for the API of ElevenLabs."],"title":"Text"},"model_id":{"description":"Identifier of the model that will be used, you can query them using GET /v1/models. The model needs to have support for text to speech, you can check this using the can_do_text_to_speech property.","type":"string","default":"eleven_multilingual_v2","title":"Model Id"},"language_code":{"description":"Language code (ISO 639-1) used to enforce a language for the model and text normalization. If the model does not support the provided language code, it will be ignored. This parameter is not supported for multilingual_v2 models.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Code"},"voice_settings":{"description":"Voice settings overriding stored settings for the given voice. They are applied only on the given request.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"A list of pronunciation dictionary locators (id, version_id) to be applied to the text. They will be applied in order. You may have up to 3 locators per request","anyOf":[{"items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionLocatorRequestModel"},"type":"array"},{"type":"null"}],"examples":[[{"pronunciation_dictionary_id":"test","version_id":"id2"}]],"title":"Pronunciation Dictionary Locators"},"seed":{"description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be integer between 0 and 4294967295.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[12345],"title":"Seed"},"previous_text":{"description":"The text that came before the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["In the heart of a lush valley surrounded by towering mountains lies the quaint village of Willowbrook."],"title":"Previous Text"},"next_text":{"description":"The text that comes after the text of the current request. Can be used to improve the speech's continuity when concatenating together multiple generations or to influence the speech's continuity in the current generation.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["The Willowbrook Festival, held every spring, celebrates the blossoming of the wild bluebells that carpet the nearby forest floors, creating a breathtaking sea of blue under the canopy of fresh green leaves."],"title":"Next Text"},"previous_request_ids":{"description":"A list of request_id of the samples that were generated before this generation. Can be used to improve the speech's continuity when splitting up a large task into multiple requests. The results will be best when the same model is used across the generations. In case both previous_text and previous_request_ids is send, previous_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["09bOJkdYVjKy2oOiiVtR","0p2uKqOnZyce22SPZ9d5","1KYvY8WZAKmcjCJ1mvVB"]],"title":"Previous Request Ids"},"next_request_ids":{"description":"A list of request_id of the samples that come after this generation. next_request_ids is especially useful for maintaining the speech's continuity when regenerating a sample that has had some audio quality issues. For example, if you have generated 3 speech clips, and you want to improve clip 2, passing the request id of clip 3 as a next_request_id (and that of clip 1 as a previous_request_id) will help maintain natural flow in the combined speech. The results will be best when the same model is used across the generations. In case both next_text and next_request_ids is send, next_text will be ignored. A maximum of 3 request_ids can be send.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"examples":[["3tPgBrD1UdW3snUkGw1K","4D1jAxiRFkolBNUGzXkU","4c8Z4aWliVR2oipYRXhj"]],"title":"Next Request Ids"},"use_pvc_as_ivc":{"description":"If true, we won't use PVC version of the voice for the generation but the IVC version. This is a temporary workaround for higher latency in PVC versions.","type":"boolean","default":false,"deprecated":true,"examples":[true],"title":"Use Pvc As Ivc"},"apply_text_normalization":{"description":"This parameter controls text normalization with three modes: 'auto', 'on', and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped.","type":"string","default":"auto","enum":["auto","on","off"],"examples":[true],"title":"Apply Text Normalization"},"apply_language_text_normalization":{"description":"This parameter controls language text normalization. This helps with proper pronunciation of text in some supported languages. WARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.","type":"boolean","default":false,"examples":[true],"title":"Apply Language Text Normalization"}},"required":["text"],"title":"Body_text_to_speech_stream_with_timestamps"},"BranchProtectionStatus":{"type":"string","default":"writer_perms_required","enum":["writer_perms_required","admin_perms_required"],"title":"BranchProtectionStatus"},"BreakdownTypes":{"description":"How to break down the information. Cannot be \"user\" or \"api_key\" if include_workspace_metrics is False.","type":"string","enum":["none","voice","voice_multiplier","user","groups","api_keys","all_api_keys","product_type","model","resource","request_queue","region","subresource_id","reporting_workspace_id","has_api_key","request_source"],"title":"BreakdownTypes"},"BucketingStatus":{"type":"string","enum":["pending","completed","failed"],"title":"BucketingStatus"},"BuiltInTools-Input":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]}},"title":"BuiltInTools"},"BuiltInTools-Output":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]}},"title":"BuiltInTools"},"BuiltInToolsWorkflowOverride-Input":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"type":"null"}]}},"title":"BuiltInToolsWorkflowOverride"},"BuiltInToolsWorkflowOverride-Output":{"type":"object","properties":{"end_call":{"description":"The end call tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"language_detection":{"description":"The language detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_agent":{"description":"The transfer to agent tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"transfer_to_number":{"description":"The transfer to number tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"skip_turn":{"description":"The skip turn tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"play_keypad_touch_tone":{"description":"The play DTMF tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]},"voicemail_detection":{"description":"The voicemail detection tool","anyOf":[{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"type":"null"}]}},"title":"BuiltInToolsWorkflowOverride"},"CancelCalendarEventParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"cancel_calendar_event","const":"cancel_calendar_event","title":"Smb Tool Type"}},"title":"CancelCalendarEventParams"},"CancelGroupSessionForAllParams":{"description":"Cancel an entire group session and notify every registered participant.\nDestructive -- prefer ``cancel_group_session_registration`` for cancelling\na single attendee.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"cancel_group_session_for_all","const":"cancel_group_session_for_all","title":"Smb Tool Type"}},"title":"CancelGroupSessionForAllParams"},"CancelGroupSessionRegistrationParams":{"description":"Cancel a single client's registration for a group session.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"cancel_group_session_registration","const":"cancel_group_session_registration","title":"Smb Tool Type"}},"title":"CancelGroupSessionRegistrationParams"},"CanvasPlacement":{"description":"Defines asset positioning and transformation on canvas.","type":"object","properties":{"x_relative":{"type":"number","default":0.5,"title":"X Relative"},"y_relative":{"type":"number","default":0.5,"title":"Y Relative"},"scale_x":{"type":"number","default":1,"title":"Scale X"},"scale_y":{"type":"number","default":1,"title":"Scale Y"},"pivot_x":{"type":"number","default":0,"title":"Pivot X"},"pivot_y":{"type":"number","default":0,"title":"Pivot Y"},"skew_x":{"type":"number","default":0,"title":"Skew X"},"skew_y":{"type":"number","default":0,"title":"Skew Y"},"crop_top":{"type":"number","default":0,"title":"Crop Top"},"crop_right":{"type":"number","default":0,"title":"Crop Right"},"crop_bottom":{"type":"number","default":0,"title":"Crop Bottom"},"crop_left":{"type":"number","default":0,"title":"Crop Left"},"flip_x":{"type":"boolean","default":false,"title":"Flip X"},"flip_y":{"type":"boolean","default":false,"title":"Flip Y"}},"title":"CanvasPlacement"},"CaptionStyleCharacterAnimationModel":{"type":"object","properties":{"enter_type":{"type":"string","enum":["none","fade","typewriter"],"title":"Enter Type"},"exit_type":{"type":"string","enum":["none","fade"],"title":"Exit Type"}},"required":["enter_type","exit_type"],"title":"CaptionStyleCharacterAnimationModel"},"CaptionStyleHorizontalPlacementModel":{"type":"object","properties":{"align":{"type":"string","enum":["left","center","right"],"title":"Align"},"translate_pct":{"type":"number","title":"Translate Pct"}},"required":["align","translate_pct"],"title":"CaptionStyleHorizontalPlacementModel"},"CaptionStyleModel":{"type":"object","properties":{"template":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleTemplateModel"},{"type":"null"}]},"text_font":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Font"},"text_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Text Scale"},"text_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Color"},"text_align":{"anyOf":[{"type":"string","enum":["start","center","end"]},{"type":"null"}],"title":"Text Align"},"text_style":{"anyOf":[{"type":"string","enum":["normal","italic"]},{"type":"null"}],"title":"Text Style"},"text_weight":{"anyOf":[{"type":"string","enum":["normal","bold","900"]},{"type":"null"}],"title":"Text Weight"},"text_transform":{"anyOf":[{"type":"string","enum":["none","uppercase"]},{"type":"null"}],"title":"Text Transform"},"text_blend_mode":{"anyOf":[{"type":"string","enum":["normal","difference","multiply"]},{"type":"null"}],"title":"Text Blend Mode"},"text_shadow":{"anyOf":[{"$ref":"#/components/schemas/StudioTextStyleShadowModel"},{"type":"null"}]},"text_outline":{"anyOf":[{"$ref":"#/components/schemas/StudioTextStyleOutlineModel"},{"type":"null"}]},"background_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Background Enabled"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"background_opacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Background Opacity"},"background_blur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Background Blur"},"background_border_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Background Border Radius"},"word_highlights_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Word Highlights Enabled"},"word_highlights_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Word Highlights Color"},"word_highlights_background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Word Highlights Background Color"},"word_highlights_opacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Word Highlights Opacity"},"word_highlights_border_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Word Highlights Border Radius"},"word_highlights_blur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Word Highlights Blur"},"section_animation":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleSectionAnimationModel"},{"type":"null"}]},"word_animation":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleWordAnimationModel"},{"type":"null"}]},"character_animation":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleCharacterAnimationModel"},{"type":"null"}]},"cursor_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cursor Enabled"},"width_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Width Pct"},"horizontal_placement":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleHorizontalPlacementModel"},{"type":"null"}]},"vertical_placement":{"anyOf":[{"$ref":"#/components/schemas/CaptionStyleVerticalPlacementModel"},{"type":"null"}]},"auto_break_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Break Enabled"},"max_lines_per_section":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Lines Per Section"},"max_words_per_line":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Words Per Line"}},"title":"CaptionStyleModel"},"CaptionStyleSectionAnimationModel":{"type":"object","properties":{"enter_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Enter Type"},"exit_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Exit Type"}},"required":["enter_type","exit_type"],"title":"CaptionStyleSectionAnimationModel"},"CaptionStyleTemplateModel":{"type":"object","properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"requires_high_fps":{"type":"boolean","default":false,"title":"Requires High Fps"}},"required":["key","label"],"title":"CaptionStyleTemplateModel"},"CaptionStyleVerticalPlacementModel":{"type":"object","properties":{"align":{"type":"string","enum":["top","center","bottom"],"title":"Align"},"translate_pct":{"type":"number","title":"Translate Pct"}},"required":["align","translate_pct"],"title":"CaptionStyleVerticalPlacementModel"},"CaptionStyleWordAnimationModel":{"type":"object","properties":{"enter_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Enter Type"},"exit_type":{"type":"string","enum":["none","fade","scale","pop","slide_up","slide_down","slam","scale_down","slide_in"],"title":"Exit Type"}},"required":["enter_type","exit_type"],"title":"CaptionStyleWordAnimationModel"},"ChapterContentBlockExtendableNodeResponseModel":{"description":"Not used. Make sure you anticipate new types in the future.","type":"object","properties":{"type":{"type":"string","const":"_other","title":"Type"}},"required":["type"],"title":"ChapterContentBlockExtendableNodeResponseModel"},"ChapterContentBlockInputModel":{"type":"object","properties":{"sub_type":{"anyOf":[{"type":"string","enum":["p","h1","h2","h3"]},{"type":"null"}],"title":"Sub Type"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/ChapterContentParagraphTtsNodeInputModel"},"title":"Nodes"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"}},"required":["nodes"],"title":"ChapterContentBlockInputModel"},"ChapterContentBlockResponseModel":{"type":"object","properties":{"block_id":{"type":"string","title":"Block Id"},"nodes":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ChapterContentBlockTtsNodeResponseModel"},{"$ref":"#/components/schemas/ChapterContentBlockExtendableNodeResponseModel"}]},"title":"Nodes"}},"required":["block_id","nodes"],"title":"ChapterContentBlockResponseModel"},"ChapterContentBlockTtsNodeResponseModel":{"type":"object","properties":{"type":{"type":"string","const":"tts_node","title":"Type"},"project_voice_ref_id":{"type":"string","title":"Project Voice Ref Id"},"text":{"type":"string","title":"Text"},"voice_id":{"type":"string","deprecated":true,"readOnly":true,"title":"Voice Id"}},"required":["type","project_voice_ref_id","text","voice_id"],"title":"ChapterContentBlockTtsNodeResponseModel"},"ChapterContentInputModel":{"type":"object","properties":{"blocks":{"type":"array","items":{"$ref":"#/components/schemas/ChapterContentBlockInputModel"},"title":"Blocks"}},"required":["blocks"],"title":"ChapterContentInputModel"},"ChapterContentParagraphTtsNodeInputModel":{"type":"object","properties":{"type":{"type":"string","const":"tts_node","title":"Type"},"text":{"type":"string","title":"Text"},"voice_id":{"type":"string","title":"Voice Id"}},"required":["type","text","voice_id"],"title":"ChapterContentParagraphTtsNodeInputModel"},"ChapterContentResponseModel":{"type":"object","properties":{"blocks":{"type":"array","items":{"$ref":"#/components/schemas/ChapterContentBlockResponseModel"},"title":"Blocks"}},"required":["blocks"],"title":"ChapterContentResponseModel"},"ChapterResponseModel":{"type":"object","properties":{"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"name":{"description":"The name of the chapter.","type":"string","title":"Name"},"last_conversion_date_unix":{"description":"The last conversion date of the chapter.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"conversion_progress":{"description":"The conversion progress of the chapter.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Conversion Progress"},"can_be_downloaded":{"description":"Whether the chapter can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"state":{"description":"The state of the chapter.","type":"string","enum":["default","converting"],"title":"State","x-fern-type-name":"ChapterState"},"has_video":{"description":"Whether the chapter has a video.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Video"},"has_visual_content":{"description":"Whether the chapter has any visual content (video, image, or text clips).","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Visual Content"},"voice_ids":{"description":"List of voice ids used by the chapter","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Voice Ids"},"statistics":{"description":"The statistics of the chapter.","anyOf":[{"$ref":"#/components/schemas/ChapterStatisticsResponseModel"},{"type":"null"}]},"last_conversion_error":{"description":"The last conversion error of the chapter.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Conversion Error"}},"example":{"can_be_downloaded":true,"chapter_id":"aw1NgEzBg83R7vgmiJt6","conversion_progress":0.5,"last_conversion_date_unix":1714204800,"last_conversion_error":"Error message","name":"Chapter 1","state":"converting","statistics":{"characters_converted":500,"characters_unconverted":1000,"credits_needed_to_convert":1000,"paragraphs_converted":20,"paragraphs_unconverted":10,"voice_statistics":[{"characters_converted":300,"characters_unconverted":600,"project_voice_ref_id":"voice123","voice_id":"voice123"},{"characters_converted":200,"characters_unconverted":400,"project_voice_ref_id":"voice456","voice_id":"voice456"}]}},"required":["chapter_id","name","can_be_downloaded","state"],"title":"ChapterResponseModel","x-fern-type-name":"ChapterResponse"},"ChapterSnapshotExtendedResponseModel":{"type":"object","properties":{"chapter_snapshot_id":{"description":"The ID of the chapter snapshot.","type":"string","title":"Chapter Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"created_at_unix":{"description":"The creation date of the chapter snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the chapter snapshot.","type":"string","title":"Name"},"character_alignments":{"type":"array","items":{"$ref":"#/components/schemas/CharacterAlignmentModel"},"title":"Character Alignments"}},"example":{"chapter_id":"aw1NgEzBg83R7vgmiJt3","chapter_snapshot_id":"aw1NgEzBg83R7vgmiJt1","character_alignments":[],"created_at_unix":1714204800,"name":"My Chapter Snapshot","project_id":"aw1NgEzBg83R7vgmiJt2"},"required":["chapter_snapshot_id","project_id","chapter_id","created_at_unix","name","character_alignments"],"title":"ChapterSnapshotExtendedResponseModel"},"ChapterSnapshotResponseModel":{"type":"object","properties":{"chapter_snapshot_id":{"description":"The ID of the chapter snapshot.","type":"string","title":"Chapter Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"created_at_unix":{"description":"The creation date of the chapter snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the chapter snapshot.","type":"string","title":"Name"}},"example":{"chapter_id":"aw1NgEzBg83R7vgmiJt3","chapter_snapshot_id":"aw1NgEzBg83R7vgmiJt1","created_at_unix":1714204800,"name":"My Chapter Snapshot","project_id":"aw1NgEzBg83R7vgmiJt2"},"required":["chapter_snapshot_id","project_id","chapter_id","created_at_unix","name"],"title":"ChapterSnapshotResponseModel","x-fern-type-name":"ChapterSnapshotResponse"},"ChapterSnapshotsResponseModel":{"type":"object","properties":{"snapshots":{"description":"List of chapter snapshots.","type":"array","items":{"$ref":"#/components/schemas/ChapterSnapshotResponseModel"},"title":"Snapshots"}},"example":{"snapshots":[{"chapter_id":"aw1NgEzBg83R7vgmiJt3","chapter_snapshot_id":"aw1NgEzBg83R7vgmiJt1","created_at_unix":1714204800,"name":"My Chapter Snapshot","project_id":"aw1NgEzBg83R7vgmiJt2"}]},"required":["snapshots"],"title":"ChapterSnapshotsResponseModel","x-fern-type-name":"ChapterSnapshotsResponse"},"ChapterStatisticsResponseModel":{"type":"object","properties":{"characters_unconverted":{"description":"The number of unconverted characters.","type":"integer","title":"Characters Unconverted"},"characters_converted":{"description":"The number of converted characters.","type":"integer","title":"Characters Converted"},"paragraphs_converted":{"description":"The number of converted paragraphs.","type":"integer","title":"Paragraphs Converted"},"paragraphs_unconverted":{"description":"The number of unconverted paragraphs.","type":"integer","title":"Paragraphs Unconverted"},"credits_needed_to_convert":{"description":"The number of credits needed to convert the remaining paragraphs.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Needed To Convert"},"voice_statistics":{"description":"Per-voice breakdown of character counts.","anyOf":[{"items":{"$ref":"#/components/schemas/VoiceStatisticsResponseModel"},"type":"array"},{"type":"null"}],"title":"Voice Statistics"}},"example":{"characters_converted":500,"characters_unconverted":1000,"credits_needed_to_convert":1000,"paragraphs_converted":20,"paragraphs_unconverted":10,"voice_statistics":[{"characters_converted":300,"characters_unconverted":600,"project_voice_ref_id":"voice123","voice_id":"voice123"},{"characters_converted":200,"characters_unconverted":400,"project_voice_ref_id":"voice456","voice_id":"voice456"}]},"required":["characters_unconverted","characters_converted","paragraphs_converted","paragraphs_unconverted"],"title":"ChapterStatisticsResponseModel","x-fern-type-name":"ChapterStatisticsResponse"},"ChapterWithContentResponseModel":{"type":"object","properties":{"chapter_id":{"description":"The ID of the chapter.","type":"string","title":"Chapter Id"},"name":{"description":"The name of the chapter.","type":"string","title":"Name"},"last_conversion_date_unix":{"description":"The last conversion date of the chapter.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"conversion_progress":{"description":"The conversion progress of the chapter.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Conversion Progress"},"can_be_downloaded":{"description":"Whether the chapter can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"state":{"description":"The state of the chapter.","type":"string","enum":["default","converting"],"title":"State"},"has_video":{"description":"Whether the chapter has a video.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Video"},"has_visual_content":{"description":"Whether the chapter has any visual content (video, image, or text clips).","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Visual Content"},"voice_ids":{"description":"List of voice ids used by the chapter","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Voice Ids"},"statistics":{"description":"The statistics of the chapter.","anyOf":[{"$ref":"#/components/schemas/ChapterStatisticsResponseModel"},{"type":"null"}]},"last_conversion_error":{"description":"The last conversion error of the chapter.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Conversion Error"},"content":{"$ref":"#/components/schemas/ChapterContentResponseModel"}},"example":{"can_be_downloaded":true,"chapter_id":"aw1NgEzBg83R7vgmiJt6","content":{"blocks":[]},"conversion_progress":0.5,"last_conversion_date_unix":1714204800,"name":"Chapter 1","state":"default","statistics":{"characters_converted":200,"characters_unconverted":100,"paragraphs_converted":5,"paragraphs_unconverted":3}},"required":["chapter_id","name","can_be_downloaded","state","content"],"title":"ChapterWithContentResponseModel"},"CharacterAge":{"type":"string","enum":["young","middle-aged","old"]},"CharacterAlignmentModel":{"type":"object","properties":{"characters":{"type":"array","items":{"type":"string"},"title":"Characters"},"character_start_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character Start Times Seconds"},"character_end_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character End Times Seconds"}},"required":["characters","character_start_times_seconds","character_end_times_seconds"],"title":"CharacterAlignmentModel"},"CharacterAlignmentResponseModel":{"type":"object","properties":{"characters":{"type":"array","items":{"type":"string"},"title":"Characters"},"character_start_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character Start Times Seconds"},"character_end_times_seconds":{"type":"array","items":{"type":"number"},"title":"Character End Times Seconds"}},"required":["characters","character_start_times_seconds","character_end_times_seconds"],"title":"CharacterAlignmentResponseModel"},"CharacterGender":{"type":"string","enum":["male","female","neutral"]},"CharacterMetadataResponseModel":{"type":"object","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"sample_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Message"},"voice_creation_prompt_suggestion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Creation Prompt Suggestion"},"gender":{"anyOf":[{"$ref":"#/components/schemas/CharacterGender"},{"type":"null"}]},"age":{"anyOf":[{"$ref":"#/components/schemas/CharacterAge"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"}},"title":"CharacterMetadataResponseModel"},"CharacterRefreshPeriod":{"type":"string","enum":["monthly_period","3_month_period","6_month_period","annual_period"],"title":"CharacterRefreshPeriod"},"CharacterResponseModel":{"type":"object","properties":{"character_id":{"type":"string","title":"Character Id"},"name":{"type":"string","title":"Name"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/CharacterMetadataResponseModel"},{"type":"null"}]}},"required":["character_id","name","metadata"],"title":"CharacterResponseModel"},"ChatSourceMedium":{"type":"string","enum":["audio","text","image","file"],"title":"ChatSourceMedium"},"CheckServiceAvailabilityParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"check_service_availability","const":"check_service_availability","title":"Smb Tool Type"}},"title":"CheckServiceAvailabilityParams"},"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","internal_turn_probability","internal_tentative_agent_response"],"title":"ClientEvent"},"ClientToolConfig-Input":{"description":"A client tool is one that sends an event to the user's client to trigger something client side","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"client","const":"client","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":1,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"parameters":{"description":"Schema for any parameters to pass to the client","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"expects_response":{"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","type":"boolean","default":false,"title":"Expects Response"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"}},"example":{"expects_response":false,"type":"client"},"required":["name","description"],"title":"ClientToolConfig"},"ClientToolConfig-Output":{"description":"A client tool is one that sends an event to the user's client to trigger something client side","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"client","const":"client","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":1,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"parameters":{"description":"Schema for any parameters to pass to the client","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"expects_response":{"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","type":"boolean","default":false,"title":"Expects Response"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"}},"example":{"expects_response":false,"type":"client"},"required":["name","description"],"title":"ClientToolConfig"},"ClipAnimation":{"type":"object","properties":{"enter_effect":{"type":"string","default":"none","enum":["none","fade","float","gentle_float","zoom_in","drop","slide_left","slide_right","slide_up","slide_down","pop","bounce","spin","slide_bounce"],"title":"Enter Effect"},"enter_duration_ms":{"type":"integer","default":0,"title":"Enter Duration Ms"},"exit_effect":{"type":"string","default":"none","enum":["none","fade","float","gentle_float","zoom_in","drop","slide_left","slide_right","slide_up","slide_down","pop","bounce","spin","slide_bounce"],"title":"Exit Effect"},"exit_duration_ms":{"type":"integer","default":0,"title":"Exit Duration Ms"}},"title":"ClipAnimation"},"ColumnFilter":{"type":"object","properties":{"column":{"type":"string","title":"Column"},"operation":{"type":"string","enum":["in","not_in","le","ge","lt","gt","eq","neq"],"title":"Operation"},"values":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"string","format":"date-time"},{"type":"boolean"},{"type":"null"}]},"title":"Values"}},"required":["column","operation","values"],"title":"ColumnFilter"},"ColumnUnit":{"type":"string","enum":["ms","s","min","duration","credits","usd","eur","inr","pln","ratio","rating"],"title":"ColumnUnit"},"CompositionPlan":{"description":"Composition plan for the `music_v2` model. Using this field with any other model will result in an error.","type":"object","properties":{"chunks":{"description":"The chunks that make up the generation.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GenerationChunk-Input"},{"$ref":"#/components/schemas/AudioRefChunk"}]},"maxItems":30,"title":"Chunks"}},"example":{"chunks":[{"duration_ms":15000,"positive_styles":["pop","warm synths","steady groove","layered harmonies"],"text":"[Verse]\nCity lights are fading\nWe keep moving through the night"},{"duration_ms":15000,"positive_styles":["uplifting","bigger drums","wide vocals"],"text":"[Chorus]\nHold on to the feeling\n{very loud}Let it rise and come alive"},{"duration_ms":5000,"positive_styles":["gentle ending","soft pads"],"text":"[Instrumental Outro]"}]},"required":["chunks"],"title":"CompositionPlan"},"ConfigEntityType":{"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.","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"],"title":"ConfigEntityType"},"ConstantSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"constant","const":"constant","title":"Source"},"constant_value":{"description":"The constant value to use","anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"items":{},"type":"array"},{"additionalProperties":true,"type":"object"}],"title":"Constant Value"}},"required":["constant_value"],"title":"ConstantSchemaOverride"},"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"},"ContentFormat":{"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.","type":"string","default":"html","enum":["html","markdown"],"title":"ContentFormat"},"ContentGuardrail-Input":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ContentConfig"},"trigger_action":{"discriminator":{"propertyName":"type","mapping":{"end_call":"#/components/schemas/EndCallTriggerAction","retry":"#/components/schemas/RetryTriggerAction"}},"oneOf":[{"$ref":"#/components/schemas/EndCallTriggerAction"},{"$ref":"#/components/schemas/RetryTriggerAction"}],"title":"Trigger Action"}},"title":"ContentGuardrail"},"ContentGuardrail-Output":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ContentConfig"},"trigger_action":{"discriminator":{"propertyName":"type","mapping":{"end_call":"#/components/schemas/EndCallTriggerAction","retry":"#/components/schemas/RetryTriggerAction"}},"oneOf":[{"$ref":"#/components/schemas/EndCallTriggerAction"},{"$ref":"#/components/schemas/RetryTriggerAction"}],"title":"Trigger Action"}},"title":"ContentGuardrail"},"ContentThresholdGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"},"threshold":{"default":0.3,"anyOf":[{"type":"number"},{"type":"string","enum":["low","medium","high"]}],"title":"Threshold"}},"title":"ContentThresholdGuardrail"},"ContextualUpdateInfo":{"type":"object","properties":{"context_id":{"description":"Client-supplied identifier grouping related contextual updates.","type":"string","title":"Context Id"},"is_superseded":{"description":"True when this contextual update has been replaced by a newer update with the same context_id.","type":"boolean","default":false,"title":"Is Superseded"}},"required":["context_id"],"title":"ContextualUpdateInfo"},"Contributor":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"profile_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Id"}},"required":["name","role"],"title":"Contributor"},"ConvAIDynamicVariable":{"description":"Used to reference a dynamic variable.","type":"object","properties":{"variable_name":{"type":"string","title":"Variable Name"}},"required":["variable_name"],"title":"ConvAIDynamicVariable"},"ConvAIEnvVarLocator":{"description":"Used to reference an environment variable by label.","type":"object","properties":{"env_var_label":{"type":"string","title":"Env Var Label"}},"required":["env_var_label"],"title":"ConvAIEnvVarLocator"},"ConvAIFileUploadResponseModel":{"type":"object","properties":{"file_id":{"type":"string","title":"File Id"}},"required":["file_id"],"title":"ConvAIFileUploadResponseModel"},"ConvAISecretLocator":{"description":"Used to reference a secret from the agent's secret store.","type":"object","properties":{"secret_id":{"type":"string","title":"Secret Id"}},"required":["secret_id"],"title":"ConvAISecretLocator"},"ConvAIStoredSecretDependencies":{"type":"object","properties":{"tools":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableToolIdentifier"},{"$ref":"#/components/schemas/DependentUnknownToolIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableToolIdentifier","unknown":"#/components/schemas/DependentUnknownToolIdentifier"}}},"title":"Tools"},"tools_has_more":{"description":"Whether there are more tool dependents beyond the returned preview","type":"boolean","default":false,"title":"Tools Has More"},"agents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Agents"},"agents_has_more":{"description":"Whether there are more agent dependents beyond the returned preview","type":"boolean","default":false,"title":"Agents Has More"},"phone_numbers":{"type":"array","items":{"$ref":"#/components/schemas/DependentPhoneNumberIdentifier"},"title":"Phone Numbers"},"phone_numbers_has_more":{"description":"Whether there are more phone number dependents beyond the returned preview","type":"boolean","default":false,"title":"Phone Numbers Has More"},"mcp_servers":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableMCPServerIdentifier"},{"$ref":"#/components/schemas/DependentUnknownMCPServerIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableMCPServerIdentifier","unknown":"#/components/schemas/DependentUnknownMCPServerIdentifier"}}},"title":"Mcp Servers"},"others":{"type":"array","items":{"$ref":"#/components/schemas/SecretDependencyType"},"title":"Others"}},"required":["tools","agents","others"],"title":"ConvAIStoredSecretDependencies"},"ConvAIUserSecretDBModel":{"description":"User-specific secret model that are not shared with other users in a workspace.","type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"encrypted_value":{"type":"string","title":"Encrypted Value"},"nonce":{"type":"string","title":"Nonce"}},"required":["id","name","encrypted_value","nonce"],"title":"ConvAIUserSecretDBModel"},"ConvAIWebhooks":{"type":"object","properties":{"post_call_webhook_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Post Call Webhook Id"},"events":{"description":"List of event types to send via webhook. Options: transcript, audio, call_initiation_failure, unredacted_transcript, unredacted_audio.","type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"},"title":"Events"},"transcript_format":{"description":"Format for transcript webhooks.","default":"json","$ref":"#/components/schemas/WebhookTranscriptFormat"},"send_audio":{"description":"DEPRECATED: Use 'events' field instead. Whether to send audio data with post-call webhooks for ConvAI conversations","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Send Audio"}},"title":"ConvAIWebhooks"},"ConvAIWorkspaceStoredSecretConfig":{"type":"object","properties":{"type":{"type":"string","const":"stored","title":"Type"},"secret_id":{"type":"string","title":"Secret Id"},"name":{"type":"string","title":"Name"},"used_by":{"$ref":"#/components/schemas/ConvAIStoredSecretDependencies"}},"required":["type","secret_id","name","used_by"],"title":"ConvAIWorkspaceStoredSecretConfig"},"ConversationASRUsageModel":{"description":"Aggregated ASR usage for a conversation (analytics-only, not billing).","type":"object","properties":{"asr_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asr Model"},"total_transcription_calls":{"type":"integer","default":0,"title":"Total Transcription Calls"},"total_audio_input_seconds":{"type":"number","default":0,"title":"Total Audio Input Seconds"}},"title":"ConversationASRUsageModel"},"ConversationChargingCommonModel":{"type":"object","properties":{"dev_discount":{"type":"boolean","default":false,"title":"Dev Discount"},"is_burst":{"type":"boolean","default":false,"title":"Is Burst"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"llm_usage":{"$ref":"#/components/schemas/LLMCategoryUsage"},"llm_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Llm Price"},"llm_charge":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Llm Charge"},"call_charge":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Charge"},"platform_charge":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Platform Charge"},"platform_usage":{"$ref":"#/components/schemas/PlatformUsage"},"platform_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Platform Price"},"free_minutes_consumed":{"type":"number","default":0,"title":"Free Minutes Consumed"},"free_llm_dollars_consumed":{"type":"number","default":0,"title":"Free Llm Dollars Consumed"},"tts_usage":{"anyOf":[{"$ref":"#/components/schemas/ConversationTTSUsageModel"},{"type":"null"}]},"asr_usage":{"anyOf":[{"$ref":"#/components/schemas/ConversationASRUsageModel"},{"type":"null"}]}},"title":"ConversationChargingCommonModel"},"ConversationConfig-Input":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","type":"boolean","default":false,"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","type":"integer","default":600,"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","$ref":"#/components/schemas/FileInputConfig","x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","type":"boolean","default":false,"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","$ref":"#/components/schemas/BackgroundSoundConfig"},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","type":"boolean","default":false,"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfig"},"ConversationConfig-Output":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","type":"boolean","default":false,"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","type":"integer","default":600,"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","$ref":"#/components/schemas/FileInputConfig","x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","type":"boolean","default":false,"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","$ref":"#/components/schemas/BackgroundSoundConfig"},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","type":"boolean","default":false,"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfig"},"ConversationConfigClientOverride-Input":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigOverride"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigOverride-Input"},{"type":"null"}]}},"example":{"agent":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"asr":{"keywords":["hello","world"]},"tts":{"model_id":"eleven_turbo_v2","similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"soft_timeout_config":{"message":"Hhmmmm...yeah."}}},"title":"ConversationConfigClientOverride"},"ConversationConfigClientOverride-Output":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigOverride"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigOverride-Output"},{"type":"null"}]}},"example":{"agent":{"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]}},"asr":{"keywords":["hello","world"]},"tts":{"model_id":"eleven_turbo_v2","similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"soft_timeout_config":{"message":"Hhmmmm...yeah."}}},"title":"ConversationConfigClientOverride"},"ConversationConfigClientOverrideConfig-Input":{"type":"object","properties":{"asr":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ASRConversationalConfigOverrideConfig"},"turn":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TurnConfigOverrideConfig"},"tts":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TTSConversationalConfigOverrideConfig"},"conversation":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ConversationConfigOverrideConfig"},"agent":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/AgentConfigOverrideConfig"}},"title":"ConversationConfigClientOverrideConfig"},"ConversationConfigClientOverrideConfig-Output":{"type":"object","properties":{"asr":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ASRConversationalConfigOverrideConfig"},"turn":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TurnConfigOverrideConfig"},"tts":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/TTSConversationalConfigOverrideConfig"},"conversation":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/ConversationConfigOverrideConfig"},"agent":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/AgentConfigOverrideConfig"}},"title":"ConversationConfigClientOverrideConfig"},"ConversationConfigOverride":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only","x-convai-client-override":true}},"title":"ConversationConfigOverride"},"ConversationConfigOverrideConfig":{"type":"object","properties":{"text_only":{"description":"Whether to allow overriding the text_only field.","type":"boolean","default":false,"title":"Text Only"}},"title":"ConversationConfigOverrideConfig"},"ConversationConfigWorkflowOverride-Input":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","anyOf":[{"$ref":"#/components/schemas/FileInputConfigWorkflowOverride"},{"type":"null"}],"x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundConfigWorkflowOverride"},{"type":"null"}]},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfigWorkflowOverride"},"ConversationConfigWorkflowOverride-Output":{"type":"object","properties":{"text_only":{"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Text Only","x-convai-client-override":true},"max_duration_seconds":{"description":"The maximum duration of a conversation in seconds","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Duration Seconds"},"client_events":{"description":"The events that will be sent to the client","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Client Events"},"file_input":{"description":"Configuration for file input (image/PDF uploads) during conversations.","anyOf":[{"$ref":"#/components/schemas/FileInputConfigWorkflowOverride"},{"type":"null"}],"x-convai-client-override":true},"monitoring_enabled":{"description":"Enable real-time monitoring of conversations via WebSocket","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Monitoring Enabled"},"monitoring_events":{"description":"The events that will be sent to monitoring connections.","anyOf":[{"items":{"$ref":"#/components/schemas/ClientEvent"},"type":"array"},{"type":"null"}],"title":"Monitoring Events"},"background_sound":{"description":"Configuration for background sound during conversations.","anyOf":[{"$ref":"#/components/schemas/BackgroundSoundConfigWorkflowOverride"},{"type":"null"}]},"source_attribution":{"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Source Attribution"}},"example":{"client_events":["audio","interruption"],"max_duration_seconds":600},"title":"ConversationConfigWorkflowOverride"},"ConversationDeletionSettings":{"type":"object","properties":{"deletion_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deletion Time Unix Secs"},"deleted_logs_at_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deleted Logs At Time Unix Secs"},"deleted_audio_at_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deleted Audio At Time Unix Secs"},"deleted_transcript_at_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deleted Transcript At Time Unix Secs"},"delete_transcript_and_pii":{"type":"boolean","default":false,"title":"Delete Transcript And Pii"},"delete_audio":{"type":"boolean","default":false,"title":"Delete Audio"}},"title":"ConversationDeletionSettings"},"ConversationFeedbackRequestModel":{"type":"object","properties":{"feedback":{"description":"Either 'like' or 'dislike' to indicate the feedback for the conversation.","anyOf":[{"$ref":"#/components/schemas/UserFeedbackScore"},{"type":"null"}],"examples":["like"]}},"examples":[{"feedback":"like"}],"title":"ConversationFeedbackRequestModel"},"ConversationFeedbackType":{"type":"string","enum":["thumbs","rating"],"title":"ConversationFeedbackType"},"ConversationHistoryAnalysisCommonModel":{"type":"object","properties":{"evaluation_criteria_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"},"title":"Evaluation Criteria Results"},"data_collection_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"},"title":"Data Collection Results"},"evaluation_criteria_results_list":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"},"title":"Evaluation Criteria Results List"},"data_collection_results_list":{"type":"array","items":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"},"title":"Data Collection Results List"},"call_successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"call_success_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Call Success Score"},"transcript_summary":{"type":"string","title":"Transcript Summary"},"call_summary_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Summary Title"},"scoped":{"type":"array","items":{"$ref":"#/components/schemas/ScopedAnalysisResult"},"title":"Scoped"}},"required":["call_successful","transcript_summary"],"title":"ConversationHistoryAnalysisCommonModel"},"ConversationHistoryBatchCallModel":{"type":"object","properties":{"batch_call_id":{"type":"string","title":"Batch Call Id"},"batch_call_recipient_id":{"type":"string","title":"Batch Call Recipient Id"}},"required":["batch_call_id","batch_call_recipient_id"],"title":"ConversationHistoryBatchCallModel"},"ConversationHistoryElevenAssistantCommonModel":{"type":"object","properties":{"is_eleven_assistant":{"type":"boolean","default":false,"title":"Is Eleven Assistant"}},"title":"ConversationHistoryElevenAssistantCommonModel"},"ConversationHistoryErrorCommonModel":{"type":"object","properties":{"code":{"type":"integer","title":"Code"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"required":["code"],"title":"ConversationHistoryErrorCommonModel"},"ConversationHistoryEvaluationCriteriaResultCommonModel":{"type":"object","properties":{"criteria_id":{"type":"string","title":"Criteria Id"},"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"rationale":{"type":"string","title":"Rationale"},"scoring_mode":{"anyOf":[{"$ref":"#/components/schemas/CriteriaScoringMode"},{"type":"null"}]},"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score"},"max_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Score"}},"required":["criteria_id","result","rationale"],"title":"ConversationHistoryEvaluationCriteriaResultCommonModel"},"ConversationHistoryExotelPhoneCallModel":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"agent_number":{"type":"string","title":"Agent Number"},"external_number":{"type":"string","title":"External Number"},"type":{"type":"string","default":"exotel","const":"exotel","title":"Type"},"stream_sid":{"type":"string","title":"Stream Sid"},"call_sid":{"type":"string","title":"Call Sid"}},"required":["direction","phone_number_id","agent_number","external_number","stream_sid","call_sid"],"title":"ConversationHistoryExotelPhoneCallModel"},"ConversationHistoryFeedbackCommonModel":{"type":"object","properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/ConversationFeedbackType"},{"type":"null"}]},"overall_score":{"anyOf":[{"$ref":"#/components/schemas/UserFeedbackScore"},{"type":"null"}]},"likes":{"type":"integer","default":0,"title":"Likes"},"dislikes":{"type":"integer","default":0,"title":"Dislikes"},"rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rating"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"title":"ConversationHistoryFeedbackCommonModel"},"ConversationHistoryMetadataCommonModel":{"type":"object","properties":{"start_time_unix_secs":{"type":"integer","title":"Start Time Unix Secs"},"accepted_time_unix_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accepted Time Unix Secs"},"call_duration_secs":{"type":"integer","title":"Call Duration Secs"},"cost":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cost"},"deletion_settings":{"$ref":"#/components/schemas/ConversationDeletionSettings"},"feedback":{"$ref":"#/components/schemas/ConversationHistoryFeedbackCommonModel"},"authorization_method":{"default":"public","$ref":"#/components/schemas/AuthorizationMethod"},"charging":{"$ref":"#/components/schemas/ConversationChargingCommonModel"},"phone_call":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTwilioPhoneCallModel"},{"$ref":"#/components/schemas/ConversationHistoryExotelPhoneCallModel"},{"$ref":"#/components/schemas/ConversationHistorySIPTrunkingPhoneCallModel"}],"discriminator":{"propertyName":"type","mapping":{"exotel":"#/components/schemas/ConversationHistoryExotelPhoneCallModel","sip_trunking":"#/components/schemas/ConversationHistorySIPTrunkingPhoneCallModel","twilio":"#/components/schemas/ConversationHistoryTwilioPhoneCallModel"}}},{"type":"null"}],"title":"Phone Call"},"batch_call":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryBatchCallModel"},{"type":"null"}]},"termination_reason":{"type":"string","default":"","title":"Termination Reason"},"error":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryErrorCommonModel"},{"type":"null"}]},"warnings":{"type":"array","items":{"type":"string"},"title":"Warnings"},"main_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Language"},"rag_usage":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryRagUsageCommonModel"},{"type":"null"}]},"text_only":{"type":"boolean","default":false,"title":"Text Only"},"features_usage":{"$ref":"#/components/schemas/FeaturesUsageCommonModel"},"eleven_assistant":{"$ref":"#/components/schemas/ConversationHistoryElevenAssistantCommonModel"},"initiator_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiator Id"},"conversation_initiation_source":{"default":"unknown","$ref":"#/components/schemas/ConversationInitiationSource"},"conversation_initiation_source_version":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Conversation Initiation Source Version"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"async_metadata":{"anyOf":[{"$ref":"#/components/schemas/AsyncConversationMetadata"},{"type":"null"}]},"whatsapp":{"anyOf":[{"$ref":"#/components/schemas/WhatsAppConversationInfo"},{"type":"null"}]},"sms":{"anyOf":[{"$ref":"#/components/schemas/SMSConversationInfo"},{"type":"null"}]},"agent_created_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"},"agent_last_updated_from":{"default":"unknown","$ref":"#/components/schemas/AgentDefinitionSource"},"voice_rewards":{"type":"array","items":{"$ref":"#/components/schemas/ConversationVoiceRewardModel"},"title":"Voice Rewards"},"cost_fiat":{"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).","anyOf":[{"type":"number"},{"type":"null"}],"readOnly":true,"title":"Cost Fiat"}},"required":["start_time_unix_secs","call_duration_secs","cost_fiat"],"title":"ConversationHistoryMetadataCommonModel"},"ConversationHistoryMultivoiceMessageModel":{"description":"Represents a message from a multi-voice agent.","type":"object","properties":{"parts":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessagePartModel"},"title":"Parts"}},"required":["parts"],"title":"ConversationHistoryMultivoiceMessageModel"},"ConversationHistoryMultivoiceMessagePartModel":{"description":"Represents a single voice part of a multi-voice message.","type":"object","properties":{"text":{"type":"string","title":"Text"},"voice_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Label"},"time_in_call_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time In Call Secs"}},"required":["text","voice_label","time_in_call_secs"],"title":"ConversationHistoryMultivoiceMessagePartModel"},"ConversationHistoryRagUsageCommonModel":{"type":"object","properties":{"usage_count":{"type":"integer","title":"Usage Count"},"embedding_model":{"type":"string","title":"Embedding Model"}},"required":["usage_count","embedding_model"],"title":"ConversationHistoryRagUsageCommonModel"},"ConversationHistoryRedactionConfig":{"type":"object","properties":{"enabled":{"description":"Whether conversation history redaction is enabled","type":"boolean","default":false,"title":"Enabled"},"entities":{"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'.","type":"array","items":{"$ref":"#/components/schemas/ConfigEntityType"},"title":"Entities"}},"title":"ConversationHistoryRedactionConfig"},"ConversationHistorySIPTrunkingPhoneCallModel":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"agent_number":{"type":"string","title":"Agent Number"},"external_number":{"type":"string","title":"External Number"},"type":{"type":"string","const":"sip_trunking","title":"Type"},"call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Id"},"call_sid":{"type":"string","title":"Call Sid"},"sip_header_dynamic_variables":{"type":"object","additionalProperties":{"type":"string"},"title":"Sip Header Dynamic Variables"}},"required":["direction","phone_number_id","agent_number","external_number","type","call_sid"],"title":"ConversationHistorySIPTrunkingPhoneCallModel"},"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Input":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel"},"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"}},"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":"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel"},"ConversationHistoryTranscriptCommonModel-Input":{"type":"object","properties":{"role":{"type":"string","enum":["user","agent"],"title":"Role"},"agent_metadata":{"anyOf":[{"$ref":"#/components/schemas/AgentMetadata"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"multivoice_message":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},{"type":"null"}]},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Input"},"title":"Tool Calls"},"tool_results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Input"}]},"title":"Tool Results"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/UserFeedback"},{"type":"null"}]},"llm_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Override"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"conversation_turn_metrics":{"anyOf":[{"$ref":"#/components/schemas/ConversationTurnMetrics"},{"type":"null"}]},"rag_retrieval_info":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalInfo"},{"type":"null"}]},"llm_usage":{"anyOf":[{"$ref":"#/components/schemas/LLMUsage-Input"},{"type":"null"}]},"interrupted":{"type":"boolean","default":false,"title":"Interrupted"},"ignored_as_backchannel":{"type":"boolean","default":false,"title":"Ignored As Backchannel"},"original_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Message"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"},"title":"Reasoning"},"source_medium":{"anyOf":[{"$ref":"#/components/schemas/ChatSourceMedium"},{"type":"null"}]},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"},"title":"Used Static Kb Document Ids"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptCommonModel"},"ConversationHistoryTranscriptCommonModel-Output":{"type":"object","properties":{"role":{"type":"string","enum":["user","agent"],"title":"Role"},"agent_metadata":{"anyOf":[{"$ref":"#/components/schemas/AgentMetadata"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"multivoice_message":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},{"type":"null"}]},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Output"},"title":"Tool Calls"},"tool_results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output"}]},"title":"Tool Results"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/UserFeedback"},{"type":"null"}]},"llm_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Override"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"conversation_turn_metrics":{"anyOf":[{"$ref":"#/components/schemas/ConversationTurnMetrics"},{"type":"null"}]},"rag_retrieval_info":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalInfo"},{"type":"null"}]},"llm_usage":{"anyOf":[{"$ref":"#/components/schemas/LLMUsage-Output"},{"type":"null"}]},"interrupted":{"type":"boolean","default":false,"title":"Interrupted"},"ignored_as_backchannel":{"type":"boolean","default":false,"title":"Ignored As Backchannel"},"original_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Message"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"},"title":"Reasoning"},"source_medium":{"anyOf":[{"$ref":"#/components/schemas/ChatSourceMedium"},{"type":"null"}]},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"},"title":"Used Static Kb Document Ids"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptCommonModel"},"ConversationHistoryTranscriptFileInputResponseModel":{"type":"object","properties":{"file_id":{"type":"string","title":"File Id"},"original_filename":{"type":"string","title":"Original Filename"},"mime_type":{"type":"string","title":"Mime Type"},"file_url":{"type":"string","title":"File Url"}},"required":["file_id","original_filename","mime_type","file_url"],"title":"ConversationHistoryTranscriptFileInputResponseModel"},"ConversationHistoryTranscriptOtherToolsResultCommonModel":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"anyOf":[{"type":"string","enum":["client","webhook","mcp","code"]},{"type":"null"}],"title":"Type"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called"],"title":"ConversationHistoryTranscriptOtherToolsResultCommonModel"},"ConversationHistoryTranscriptResponseModel":{"type":"object","properties":{"role":{"type":"string","enum":["user","agent"],"title":"Role"},"agent_metadata":{"anyOf":[{"$ref":"#/components/schemas/AgentMetadata"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"multivoice_message":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},{"type":"null"}]},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Output"},"title":"Tool Calls"},"tool_results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output"}]},"title":"Tool Results"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/UserFeedback"},{"type":"null"}]},"llm_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Override"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"conversation_turn_metrics":{"anyOf":[{"$ref":"#/components/schemas/ConversationTurnMetrics"},{"type":"null"}]},"rag_retrieval_info":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalInfo"},{"type":"null"}]},"llm_usage":{"anyOf":[{"$ref":"#/components/schemas/LLMUsage-Output"},{"type":"null"}]},"interrupted":{"type":"boolean","default":false,"title":"Interrupted"},"ignored_as_backchannel":{"type":"boolean","default":false,"title":"Ignored As Backchannel"},"original_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Message"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"},"title":"Reasoning"},"source_medium":{"anyOf":[{"$ref":"#/components/schemas/ChatSourceMedium"},{"type":"null"}]},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"},"title":"Used Static Kb Document Ids"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"},"file_input":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptFileInputResponseModel"},{"type":"null"}]},"contextual_update_info":{"anyOf":[{"$ref":"#/components/schemas/ContextualUpdateInfo"},{"type":"null"}]},"reasoned":{"type":"boolean","default":false,"title":"Reasoned"}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptResponseModel"},"ConversationHistoryTranscriptSystemToolResultCommonModel-Input":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"system","title":"Type"},"result":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/EndCallToolResultModel"},{"$ref":"#/components/schemas/LanguageDetectionToolResultModel"},{"$ref":"#/components/schemas/TransferToAgentToolResultSuccessModel-Input"},{"$ref":"#/components/schemas/TransferToAgentToolResultErrorModel"},{"$ref":"#/components/schemas/TransferToNumberResultTwilioSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultSipSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultExotelSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultErrorModel"},{"$ref":"#/components/schemas/SkipTurnToolResponseModel"},{"$ref":"#/components/schemas/PlayDTMFResultSuccessModel"},{"$ref":"#/components/schemas/PlayDTMFResultErrorModel"},{"$ref":"#/components/schemas/VoiceMailDetectionResultSuccessModel"},{"$ref":"#/components/schemas/TestToolResultModel"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolResultModel"},{"$ref":"#/components/schemas/RunSubagentToolResultSuccessModel"},{"$ref":"#/components/schemas/RunSubagentToolResultErrorModel"}],"discriminator":{"propertyName":"result_type","mapping":{"end_call_success":"#/components/schemas/EndCallToolResultModel","knowledge_base_rag_success":"#/components/schemas/KnowledgeBaseRagToolResultModel","language_detection_success":"#/components/schemas/LanguageDetectionToolResultModel","play_dtmf_error":"#/components/schemas/PlayDTMFResultErrorModel","play_dtmf_success":"#/components/schemas/PlayDTMFResultSuccessModel","run_subagent_error":"#/components/schemas/RunSubagentToolResultErrorModel","run_subagent_success":"#/components/schemas/RunSubagentToolResultSuccessModel","skip_turn_success":"#/components/schemas/SkipTurnToolResponseModel","testing_tool_result":"#/components/schemas/TestToolResultModel","transfer_to_agent_error":"#/components/schemas/TransferToAgentToolResultErrorModel","transfer_to_agent_success":"#/components/schemas/TransferToAgentToolResultSuccessModel-Input","transfer_to_number_error":"#/components/schemas/TransferToNumberResultErrorModel","transfer_to_number_exotel_success":"#/components/schemas/TransferToNumberResultExotelSuccessModel","transfer_to_number_sip_success":"#/components/schemas/TransferToNumberResultSipSuccessModel","transfer_to_number_twilio_success":"#/components/schemas/TransferToNumberResultTwilioSuccessModel","voicemail_detection_success":"#/components/schemas/VoiceMailDetectionResultSuccessModel"}}},{"type":"null"}],"title":"Result"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptSystemToolResultCommonModel"},"ConversationHistoryTranscriptSystemToolResultCommonModel-Output":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"system","title":"Type"},"result":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/EndCallToolResultModel"},{"$ref":"#/components/schemas/LanguageDetectionToolResultModel"},{"$ref":"#/components/schemas/TransferToAgentToolResultSuccessModel-Output"},{"$ref":"#/components/schemas/TransferToAgentToolResultErrorModel"},{"$ref":"#/components/schemas/TransferToNumberResultTwilioSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultSipSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultExotelSuccessModel"},{"$ref":"#/components/schemas/TransferToNumberResultErrorModel"},{"$ref":"#/components/schemas/SkipTurnToolResponseModel"},{"$ref":"#/components/schemas/PlayDTMFResultSuccessModel"},{"$ref":"#/components/schemas/PlayDTMFResultErrorModel"},{"$ref":"#/components/schemas/VoiceMailDetectionResultSuccessModel"},{"$ref":"#/components/schemas/TestToolResultModel"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolResultModel"},{"$ref":"#/components/schemas/RunSubagentToolResultSuccessModel"},{"$ref":"#/components/schemas/RunSubagentToolResultErrorModel"}],"discriminator":{"propertyName":"result_type","mapping":{"end_call_success":"#/components/schemas/EndCallToolResultModel","knowledge_base_rag_success":"#/components/schemas/KnowledgeBaseRagToolResultModel","language_detection_success":"#/components/schemas/LanguageDetectionToolResultModel","play_dtmf_error":"#/components/schemas/PlayDTMFResultErrorModel","play_dtmf_success":"#/components/schemas/PlayDTMFResultSuccessModel","run_subagent_error":"#/components/schemas/RunSubagentToolResultErrorModel","run_subagent_success":"#/components/schemas/RunSubagentToolResultSuccessModel","skip_turn_success":"#/components/schemas/SkipTurnToolResponseModel","testing_tool_result":"#/components/schemas/TestToolResultModel","transfer_to_agent_error":"#/components/schemas/TransferToAgentToolResultErrorModel","transfer_to_agent_success":"#/components/schemas/TransferToAgentToolResultSuccessModel-Output","transfer_to_number_error":"#/components/schemas/TransferToNumberResultErrorModel","transfer_to_number_exotel_success":"#/components/schemas/TransferToNumberResultExotelSuccessModel","transfer_to_number_sip_success":"#/components/schemas/TransferToNumberResultSipSuccessModel","transfer_to_number_twilio_success":"#/components/schemas/TransferToNumberResultTwilioSuccessModel","voicemail_detection_success":"#/components/schemas/VoiceMailDetectionResultSuccessModel"}}},{"type":"null"}],"title":"Result"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptSystemToolResultCommonModel"},"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Input":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"},"webhook_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}},"required":["webhook_details"],"title":"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails"},"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output":{"type":"object","properties":{"type":{"type":"string","default":"api_integration_webhook","const":"api_integration_webhook","title":"Type"},"integration_id":{"type":"string","default":"","title":"Integration Id"},"credential_id":{"type":"string","default":"","title":"Credential Id"},"integration_connection_id":{"type":"string","default":"","title":"Integration Connection Id"},"webhook_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}},"required":["type","integration_id","credential_id","integration_connection_id","webhook_details"],"title":"ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails"},"ConversationHistoryTranscriptToolCallClientDetails":{"type":"object","properties":{"type":{"type":"string","default":"client","const":"client","title":"Type"},"parameters":{"title":"Parameters","type":"string"}},"required":["parameters"],"title":"ConversationHistoryTranscriptToolCallClientDetails"},"ConversationHistoryTranscriptToolCallCommonModel-Input":{"type":"object","properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/ToolType"},{"type":"null"}]},"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"params_as_json":{"type":"string","title":"Params As Json"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_details":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Input"}],"discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Input","client":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails","mcp":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails","webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}}},{"type":"null"}],"title":"Tool Details"}},"required":["request_id","tool_name","params_as_json","tool_has_been_called"],"title":"ConversationHistoryTranscriptToolCallCommonModel"},"ConversationHistoryTranscriptToolCallCommonModel-Output":{"type":"object","properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/ToolType"},{"type":"null"}]},"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"params_as_json":{"type":"string","title":"Params As Json"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_details":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output"}],"discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output","client":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails","mcp":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails","webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}}},{"type":"null"}],"title":"Tool Details"}},"required":["request_id","tool_name","params_as_json","tool_has_been_called"],"title":"ConversationHistoryTranscriptToolCallCommonModel"},"ConversationHistoryTranscriptToolCallMCPDetails":{"type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"mcp_server_id":{"type":"string","title":"Mcp Server Id"},"mcp_server_name":{"type":"string","title":"Mcp Server Name"},"integration_type":{"type":"string","title":"Integration Type"},"parameters":{"additionalProperties":{"type":"string"},"title":"Parameters","type":"object"},"approval_policy":{"type":"string","title":"Approval Policy"},"requires_approval":{"type":"boolean","default":false,"title":"Requires Approval"},"mcp_tool_name":{"type":"string","default":"","title":"Mcp Tool Name"},"mcp_tool_description":{"type":"string","default":"","title":"Mcp Tool Description"}},"required":["mcp_server_id","mcp_server_name","integration_type","approval_policy"],"title":"ConversationHistoryTranscriptToolCallMCPDetails"},"ConversationHistoryTranscriptToolCallWebhookDetails":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"method":{"type":"string","title":"Method"},"url":{"type":"string","title":"Url"},"headers":{"type":"object","additionalProperties":{"type":"string"},"title":"Headers"},"path_params":{"type":"object","additionalProperties":{"type":"string"},"title":"Path Params"},"query_params":{"type":"object","additionalProperties":{"type":"string"},"title":"Query Params"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"}},"required":["method","url"],"title":"ConversationHistoryTranscriptToolCallWebhookDetails"},"ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Input":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"workflow","title":"Type"},"result":{"anyOf":[{"$ref":"#/components/schemas/WorkflowToolResponseModel-Input"},{"type":"null"}]}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptWorkflowToolsResultCommonModel"},"ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output":{"type":"object","properties":{"request_id":{"type":"string","title":"Request Id"},"tool_name":{"type":"string","title":"Tool Name"},"result_value":{"type":"string","title":"Result Value"},"is_error":{"type":"boolean","title":"Is Error"},"is_blocked":{"type":"boolean","default":false,"title":"Is Blocked"},"tool_has_been_called":{"type":"boolean","title":"Tool Has Been Called"},"tool_latency_secs":{"type":"number","default":0,"title":"Tool Latency Secs"},"error_type":{"type":"string","default":"","title":"Error Type"},"raw_error_message":{"type":"string","default":"","title":"Raw Error Message"},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"},"title":"Dynamic Variable Updates"},"type":{"type":"string","const":"workflow","title":"Type"},"result":{"anyOf":[{"$ref":"#/components/schemas/WorkflowToolResponseModel-Output"},{"type":"null"}]}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptWorkflowToolsResultCommonModel"},"ConversationHistoryTwilioPhoneCallModel":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"agent_number":{"type":"string","title":"Agent Number"},"external_number":{"type":"string","title":"External Number"},"type":{"type":"string","const":"twilio","title":"Type"},"stream_sid":{"type":"string","title":"Stream Sid"},"call_sid":{"type":"string","title":"Call Sid"}},"required":["direction","phone_number_id","agent_number","external_number","type","stream_sid","call_sid"],"title":"ConversationHistoryTwilioPhoneCallModel"},"ConversationInitiationClientDataConfig-Input":{"type":"object","properties":{"conversation_config_override":{"description":"Overrides for the conversation configuration","$ref":"#/components/schemas/ConversationConfigClientOverrideConfig-Input"},"custom_llm_extra_body":{"description":"Whether to include custom LLM extra body","type":"boolean","default":false,"title":"Custom Llm Extra Body"},"enable_conversation_initiation_client_data_from_webhook":{"description":"Whether to enable conversation initiation client data from webhooks","type":"boolean","default":false,"title":"Enable Conversation Initiation Client Data From Webhook"},"enable_starting_workflow_node_id_from_client":{"description":"Whether clients may pass starting_workflow_node_id in initiation client data; if false, sending it fails conversation start.","type":"boolean","default":false,"title":"Enable Starting Workflow Node Id From Client"}},"example":{"custom_llm_extra_body":true,"enable_conversation_initiation_client_data_from_webhook":true,"enable_starting_workflow_node_id_from_client":true},"title":"ConversationInitiationClientDataConfig"},"ConversationInitiationClientDataConfig-Output":{"type":"object","properties":{"conversation_config_override":{"description":"Overrides for the conversation configuration","$ref":"#/components/schemas/ConversationConfigClientOverrideConfig-Output"},"custom_llm_extra_body":{"description":"Whether to include custom LLM extra body","type":"boolean","default":false,"title":"Custom Llm Extra Body"},"enable_conversation_initiation_client_data_from_webhook":{"description":"Whether to enable conversation initiation client data from webhooks","type":"boolean","default":false,"title":"Enable Conversation Initiation Client Data From Webhook"},"enable_starting_workflow_node_id_from_client":{"description":"Whether clients may pass starting_workflow_node_id in initiation client data; if false, sending it fails conversation start.","type":"boolean","default":false,"title":"Enable Starting Workflow Node Id From Client"}},"example":{"custom_llm_extra_body":true,"enable_conversation_initiation_client_data_from_webhook":true,"enable_starting_workflow_node_id_from_client":true},"title":"ConversationInitiationClientDataConfig"},"ConversationInitiationClientDataInternal":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverride-Output"},"custom_llm_extra_body":{"type":"object","additionalProperties":true,"title":"Custom Llm Extra Body"},"user_id":{"description":"ID of the end user participating in this conversation (for agent owner's user identification)","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"description":"ID of the agent branch to use for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"description":"Environment to use for resolving environment variables","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"starting_workflow_node_id":{"description":"If set, start the workflow at this node id instead of the default entry","anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Workflow Node Id"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior","$ref":"#/components/schemas/OrchestratorToolMockBehaviorConfig"},"tool_mock_overrides":{"description":"Per-tool response mock overrides keyed by resolved tool name, applied ahead of the tool's shared mocks. Used for test-specific mocks.","type":"object","additionalProperties":{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Output"},"type":"array"},"title":"Tool Mock Overrides"}},"title":"ConversationInitiationClientDataInternal"},"ConversationInitiationClientDataRequest-Input":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverride-Input"},"custom_llm_extra_body":{"type":"object","additionalProperties":true,"title":"Custom Llm Extra Body"},"user_id":{"description":"ID of the end user participating in this conversation (for agent owner's user identification)","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"description":"ID of the agent branch to use for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"description":"Environment to use for resolving environment variables","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"starting_workflow_node_id":{"description":"If set, start the workflow at this node id instead of the default entry","anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Workflow Node Id"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"}},"title":"ConversationInitiationClientDataRequest"},"ConversationInitiationClientDataRequest-Output":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverride-Output"},"custom_llm_extra_body":{"type":"object","additionalProperties":true,"title":"Custom Llm Extra Body"},"user_id":{"description":"ID of the end user participating in this conversation (for agent owner's user identification)","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"description":"ID of the agent branch to use for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"environment":{"description":"Environment to use for resolving environment variables","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"starting_workflow_node_id":{"description":"If set, start the workflow at this node id instead of the default entry","anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Workflow Node Id"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"}},"title":"ConversationInitiationClientDataRequest"},"ConversationInitiationClientDataWebhook":{"type":"object","properties":{"url":{"description":"The URL to send the webhook to","type":"string","title":"Url"},"request_headers":{"description":"The headers to send with the webhook request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"}]},"title":"Request Headers"}},"example":{"request_headers":{"Content-Type":"application/json"},"url":"https://example.com/webhook"},"required":["url","request_headers"],"title":"ConversationInitiationClientDataWebhook"},"ConversationInitiationSource":{"description":"Enum representing the possible sources for conversation initiation.","type":"string","default":"unknown","enum":["unknown","android_sdk","node_js_sdk","react_native_sdk","react_sdk","js_sdk","python_sdk","widget","sip_trunk","twilio","exotel","genesys","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"],"title":"ConversationInitiationSource"},"ConversationInitiationSourceInfo":{"description":"Information about the source of conversation initiation","type":"object","properties":{"source":{"description":"Source of the conversation initiation","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"version":{"description":"The SDK version number","anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Version"}},"title":"ConversationInitiationSourceInfo"},"ConversationProduct":{"description":"Which product surface owns this agent document.","type":"string","enum":["agents","speech_engine"],"title":"ConversationProduct"},"ConversationReasoningModel":{"type":"object","properties":{"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"provider_redact":{"type":"boolean","default":false,"title":"Provider Redact"}},"title":"ConversationReasoningModel"},"ConversationSentimentAnalysis":{"type":"object","properties":{"overall_label":{"type":"string","enum":["positive","neutral","negative"],"title":"Overall Label"},"overall_sentiment_score":{"type":"number","maximum":1,"minimum":-1,"title":"Overall Sentiment Score"},"overall_frustration_score":{"type":"number","maximum":1,"minimum":0,"title":"Overall Frustration Score"},"min_user_sentiment_score":{"type":"number","maximum":1,"minimum":-1,"title":"Min User Sentiment Score"},"max_user_frustration_score":{"type":"number","maximum":1,"minimum":0,"title":"Max User Frustration Score"},"num_scored_user_turns":{"type":"integer","minimum":0,"title":"Num Scored User Turns"}},"required":["overall_label","overall_sentiment_score","overall_frustration_score","min_user_sentiment_score","max_user_frustration_score","num_scored_user_turns"],"title":"ConversationSentimentAnalysis"},"ConversationSignedUrlResponseModel":{"type":"object","properties":{"signed_url":{"type":"string","title":"Signed Url"}},"required":["signed_url"],"title":"ConversationSignedUrlResponseModel"},"ConversationSimulationSpecification":{"description":"A specification that will be used to simulate a conversation between an agent and an AI user.","type":"object","properties":{"simulated_user_config":{"$ref":"#/components/schemas/AgentConfigAPIModel-Input"},"tool_mock_config":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ToolMockConfig"},"title":"Tool Mock Config"},"partial_conversation_history":{"description":"A partial conversation history to start the simulation from. If empty, simulation starts fresh.","type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"title":"Partial Conversation History"},"dynamic_variables":{"type":"object","additionalProperties":true,"title":"Dynamic Variables"}},"required":["simulated_user_config"],"title":"ConversationSimulationSpecification"},"ConversationSource":{"type":"object","properties":{"type":{"type":"string","default":"conversation","const":"conversation","title":"Type"},"conversation_id":{"type":"string","title":"Conversation Id"}},"required":["conversation_id"],"title":"ConversationSource"},"ConversationSummaryResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"conversation_id":{"type":"string","title":"Conversation Id"},"start_time_unix_secs":{"type":"integer","title":"Start Time Unix Secs"},"call_duration_secs":{"type":"integer","title":"Call Duration Secs"},"message_count":{"type":"integer","title":"Message Count"},"status":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"Status"},"termination_reason":{"type":"string","default":"","title":"Termination Reason"},"call_successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"call_success_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Call Success Score"},"transcript_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript Summary"},"call_summary_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Summary Title"},"main_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Language"},"conversation_initiation_source":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"tool_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Names"},"direction":{"anyOf":[{"$ref":"#/components/schemas/TelephonyDirection"},{"type":"null"}]},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"sentiment_analysis":{"anyOf":[{"$ref":"#/components/schemas/ConversationSentimentAnalysis"},{"type":"null"}]},"data_collection_results":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data Collection Results"},"evaluation_criteria_results":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/EvaluationCriteriaSummaryResult"},"type":"object"},{"type":"null"}],"title":"Evaluation Criteria Results"},"tag_ids":{"description":"Conversation tag ids assigned to this conversation.","type":"array","items":{"type":"string"},"title":"Tag Ids"}},"required":["agent_id","conversation_id","start_time_unix_secs","call_duration_secs","message_count","status","call_successful"],"title":"ConversationSummaryResponseModel"},"ConversationTTSUsageModel":{"description":"Aggregated TTS usage for a conversation (analytics-only, not billing).","type":"object","properties":{"primary_tts_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Tts Model"},"total_audio_output_seconds":{"type":"number","default":0,"title":"Total Audio Output Seconds"},"total_characters":{"type":"integer","default":0,"title":"Total Characters"},"per_voice_usage":{"type":"array","items":{"$ref":"#/components/schemas/ConversationVoiceUsageModel"},"title":"Per Voice Usage"}},"title":"ConversationTTSUsageModel"},"ConversationTagResponseModel":{"type":"object","properties":{"tag_id":{"type":"string","title":"Tag Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"owner_user_id":{"type":"string","title":"Owner User Id"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"}},"required":["tag_id","workspace_id","owner_user_id","title","description","created_at_unix_secs"],"title":"ConversationTagResponseModel"},"ConversationTokenPurpose":{"type":"string","enum":["signed_url","shareable_link"],"title":"ConversationTokenPurpose"},"ConversationTokenResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"conversation_token":{"description":"The token for the agent","type":"string","title":"Conversation Token"},"expiration_time_unix_secs":{"description":"The expiration time of the token in unix seconds","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expiration Time Unix Secs"},"conversation_id":{"description":"The ID of the conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"purpose":{"description":"The purpose of the token","$ref":"#/components/schemas/ConversationTokenPurpose"},"token_requester_user_id":{"description":"The user ID of the entity who requested the token","anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Requester User Id"}},"required":["agent_id","conversation_token","purpose"],"title":"ConversationTokenResponseModel"},"ConversationTurnMetrics":{"type":"object","properties":{"metrics":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MetricRecord"},"title":"Metrics"},"convai_asr_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Convai Asr Provider"},"convai_tts_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Convai Tts Model"},"convai_tts_cascade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Convai Tts Cascade"}},"title":"ConversationTurnMetrics"},"ConversationUserResponseModel":{"type":"object","properties":{"user_id":{"type":"string","title":"User Id"},"last_contact_unix_secs":{"type":"integer","title":"Last Contact Unix Secs"},"first_contact_unix_secs":{"type":"integer","title":"First Contact Unix Secs"},"conversation_count":{"type":"integer","title":"Conversation Count"},"last_contact_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Contact Agent Id"},"last_contact_conversation_id":{"type":"string","title":"Last Contact Conversation Id"},"last_contact_agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Contact Agent Name"},"sentiment":{"$ref":"#/components/schemas/SentimentAggregate"},"most_frustrated_conversations":{"type":"array","items":{"$ref":"#/components/schemas/FrustratedConversationRef"},"title":"Most Frustrated Conversations"}},"required":["user_id","last_contact_unix_secs","first_contact_unix_secs","conversation_count","last_contact_conversation_id","sentiment"],"title":"ConversationUserResponseModel"},"ConversationVoiceRewardModel":{"type":"object","properties":{"voice_id":{"type":"string","title":"Voice Id"},"reward_usd_cents":{"type":"number","title":"Reward Usd Cents"}},"required":["voice_id","reward_usd_cents"],"title":"ConversationVoiceRewardModel"},"ConversationVoiceUsageModel":{"type":"object","properties":{"voice_id":{"type":"string","title":"Voice Id"},"audio_output_seconds":{"type":"number","default":0,"title":"Audio Output Seconds"}},"required":["voice_id"],"title":"ConversationVoiceUsageModel"},"ConversationalConfigAPIModel-Input":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","$ref":"#/components/schemas/ASRConversationalConfig"},"turn":{"description":"Configuration for turn detection","$ref":"#/components/schemas/TurnConfig"},"tts":{"description":"Configuration for conversational text to speech","$ref":"#/components/schemas/TTSConversationalConfig-Input"},"conversation":{"description":"Configuration for conversational events","$ref":"#/components/schemas/ConversationConfig-Input"},"language_presets":{"description":"Language presets for conversations","type":"object","additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Input"},"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","$ref":"#/components/schemas/VADConfig"},"agent":{"description":"Agent specific configuration","$ref":"#/components/schemas/AgentConfigAPIModel-Input"}},"title":"ConversationalConfigAPIModel","x-fern-type-name":"ConversationalConfig"},"ConversationalConfigAPIModel-Output":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","$ref":"#/components/schemas/ASRConversationalConfig"},"turn":{"description":"Configuration for turn detection","$ref":"#/components/schemas/TurnConfig"},"tts":{"description":"Configuration for conversational text to speech","$ref":"#/components/schemas/TTSConversationalConfig-Output"},"conversation":{"description":"Configuration for conversational events","$ref":"#/components/schemas/ConversationConfig-Output"},"language_presets":{"description":"Language presets for conversations","type":"object","additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Output"},"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","$ref":"#/components/schemas/VADConfig"},"agent":{"description":"Agent specific configuration","$ref":"#/components/schemas/AgentConfigAPIModel-Output"}},"title":"ConversationalConfigAPIModel","x-fern-type-name":"ConversationalConfig"},"ConversationalConfigAPIModelWorkflowOverride-Input":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigWorkflowOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigWorkflowOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigWorkflowOverride-Input"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigWorkflowOverride-Input"},{"type":"null"}]},"language_presets":{"description":"Language presets for conversations","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Input"},"type":"object"},{"type":"null"}],"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","anyOf":[{"$ref":"#/components/schemas/VADConfigWorkflowOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigAPIModelWorkflowOverride-Input"},{"type":"null"}]}},"example":{"agent":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"asr":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"conversation":{"client_events":["audio","interruption"],"max_duration_seconds":600},"tts":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"vad":{"background_voice_detection":false}},"title":"ConversationalConfigAPIModelWorkflowOverride"},"ConversationalConfigAPIModelWorkflowOverride-Output":{"type":"object","properties":{"asr":{"description":"Configuration for conversational transcription","anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfigWorkflowOverride"},{"type":"null"}]},"turn":{"description":"Configuration for turn detection","anyOf":[{"$ref":"#/components/schemas/TurnConfigWorkflowOverride"},{"type":"null"}]},"tts":{"description":"Configuration for conversational text to speech","anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfigWorkflowOverride-Output"},{"type":"null"}]},"conversation":{"description":"Configuration for conversational events","anyOf":[{"$ref":"#/components/schemas/ConversationConfigWorkflowOverride-Output"},{"type":"null"}]},"language_presets":{"description":"Language presets for conversations","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/LanguagePreset-Output"},"type":"object"},{"type":"null"}],"title":"Language Presets"},"vad":{"description":"Configuration for voice activity detection","anyOf":[{"$ref":"#/components/schemas/VADConfigWorkflowOverride"},{"type":"null"}]},"agent":{"description":"Agent specific configuration","anyOf":[{"$ref":"#/components/schemas/AgentConfigAPIModelWorkflowOverride-Output"},{"type":"null"}]}},"example":{"agent":{"disable_first_message_interruptions":false,"dynamic_variables":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"first_message":"Hello, how can I help you today?","language":"en","prompt":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]}},"asr":{"keywords":["hello","world"],"provider":"scribe_realtime","quality":"high","user_input_audio_format":"pcm_16000"},"conversation":{"client_events":["audio","interruption"],"max_duration_seconds":600},"tts":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"vad":{"background_voice_detection":false}},"title":"ConversationalConfigAPIModelWorkflowOverride"},"ConvertChapterResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio chapter conversion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"ConvertChapterResponseModel"},"ConvertProjectResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio project conversion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"ConvertProjectResponseModel"},"CrawlStatus":{"type":"string","default":"queued","enum":["queued","processing","succeeded","failed","skipped","cancelled"],"title":"CrawlStatus"},"CrawlType":{"type":"string","default":"discovery","enum":["discovery","sitemap"],"title":"CrawlType"},"CreateAgentBranchResponseModel":{"type":"object","properties":{"created_branch_id":{"description":"ID of the created branch","type":"string","title":"Created Branch Id"},"created_version_id":{"description":"ID of the first version on the created branch","type":"string","title":"Created Version Id"}},"required":["created_branch_id","created_version_id"],"title":"CreateAgentBranchResponseModel"},"CreateAgentProcedureParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_agent_procedure","const":"create_agent_procedure","title":"Smb Tool Type"}},"title":"CreateAgentProcedureParams"},"CreateAgentResponseModel":{"type":"object","properties":{"agent_id":{"description":"ID of the created agent","type":"string","title":"Agent Id"}},"example":{"agent_id":"J3Pbu5gP6NNKBscdCdwB"},"required":["agent_id"],"title":"CreateAgentResponseModel"},"CreateAgentRuleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_agent_rule","const":"create_agent_rule","title":"Smb Tool Type"}},"title":"CreateAgentRuleParams"},"CreateAgentTestFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"CreateAgentTestFolderResponseModel"},"CreateAgentTestResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"}},"required":["id"],"title":"CreateAgentTestResponseModel"},"CreateAssetParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_asset","const":"create_asset","title":"Smb Tool Type"}},"title":"CreateAssetParams"},"CreateAuthConnectionEnvironmentVariableRequest":{"type":"object","properties":{"type":{"type":"string","const":"auth_connection","title":"Type"},"label":{"description":"Unique label for the environment variable.","type":"string","title":"Label"},"values":{"description":"Environment-specific auth connection references. Must include 'production' key.","type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValueRequest"},"title":"Values"}},"required":["type","label","values"],"title":"CreateAuthConnectionEnvironmentVariableRequest"},"CreateBasicAuthRequest":{"description":"Request model for creating Basic Auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"basic_auth","const":"basic_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"required":["name","provider","username","password"],"title":"CreateBasicAuthRequest"},"CreateBearerAuthRequest":{"description":"Request model for creating Bearer Auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"bearer_auth","const":"bearer_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"token":{"type":"string","title":"Token"}},"required":["name","provider","token"],"title":"CreateBearerAuthRequest"},"CreateClientAppointmentParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_client_appointment","const":"create_client_appointment","title":"Smb Tool Type"}},"title":"CreateClientAppointmentParams"},"CreateClientInteractionParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_client_interaction","const":"create_client_interaction","title":"Smb Tool Type"}},"title":"CreateClientInteractionParams"},"CreateClientParams":{"description":"Create a new client in the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_client","const":"create_client","title":"Smb Tool Type"}},"title":"CreateClientParams"},"CreateConversationTagRequestModel":{"type":"object","properties":{"title":{"description":"Display title of the tag.","type":"string","maxLength":120,"minLength":1,"title":"Title"},"description":{"description":"Optional free-text description.","anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"required":["title"],"title":"CreateConversationTagRequestModel"},"CreateCrawlJobResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"type":{"$ref":"#/components/schemas/CrawlType"},"root_folder_id":{"type":"string","title":"Root Folder Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"integer","title":"Created At"},"folder_path":{"description":"The folder path segments leading to the root folder, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"}},"required":["id","type","root_folder_id","status","created_at"],"title":"CreateCrawlJobResponseModel"},"CreateCustomHeaderAuthRequest":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"custom_header_auth","const":"custom_header_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"header_name":{"description":"The name of the header to use for authentication (e.g., 'x-api-key')","type":"string","title":"Header Name"},"token":{"type":"string","title":"Token"}},"required":["name","provider","header_name","token"],"title":"CreateCustomHeaderAuthRequest"},"CreateExotelPhoneNumberRequest":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"provider":{"type":"string","default":"exotel","const":"exotel","title":"Provider"},"agent_id":{"description":"Agent ID to assign the phone number to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"account_sid":{"description":"Exotel Account SID","type":"string","title":"Account Sid"},"api_key":{"description":"Exotel API Key","type":"string","title":"Api Key"},"api_token":{"description":"Exotel API Token","type":"string","title":"Api Token"},"api_subdomain":{"description":"Exotel region-specific API host","$ref":"#/components/schemas/ExotelApiSubdomain"},"app_id":{"description":"Exotel applet identifier used in Calls/connect","type":"string","title":"App Id"},"applet_url":{"description":"Optional full applet URL override. Defaults to Exotel start_voice URL derived from account SID and app ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Applet Url"}},"example":{"account_sid":"your-account-sid","api_key":"your-api-key","api_subdomain":"api.in.exotel.com","api_token":"********","app_id":"12345","label":"Exotel Outbound","phone_number":"+919999999999","provider":"exotel"},"required":["phone_number","label","account_sid","api_key","api_token","api_subdomain","app_id"],"title":"CreateExotelPhoneNumberRequest"},"CreateHolidayParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_holiday","const":"create_holiday","title":"Smb Tool Type"}},"title":"CreateHolidayParams"},"CreateLocationParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_location","const":"create_location","title":"Smb Tool Type"}},"title":"CreateLocationParams"},"CreateMTLSAuthRequest":{"description":"Request model for creating mTLS auth connections.","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"mtls","const":"mtls","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_certificate":{"type":"string","title":"Client Certificate"},"client_key":{"type":"string","title":"Client Key"},"ca_certificate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ca Certificate"},"key_passphrase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Passphrase"}},"required":["name","provider","client_certificate","client_key"],"title":"CreateMTLSAuthRequest"},"CreateOAuth2ClientCredsRequest":{"description":"Request model for creating auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_client_credentials","const":"oauth2_client_credentials","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_id":{"type":"string","title":"Client Id"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"default":[],"title":"Scopes"},"extra_params":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Extra Params"},"basic_auth_in_header":{"description":"If True, send client credentials in Authorization header as Basic Auth instead of request body","type":"boolean","default":false,"title":"Basic Auth In Header"},"client_secret":{"type":"string","title":"Client Secret"},"custom_headers":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Custom Headers"}},"required":["name","provider","client_id","token_url","client_secret"],"title":"CreateOAuth2ClientCredsRequest"},"CreateOAuth2JWTRequest":{"description":"Request model for creating OAuth2 JWT auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_jwt","const":"oauth2_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"token_url":{"description":"Token endpoint URL for exchanging JWT for access token","type":"string","title":"Token Url"},"scopes":{"description":"OAuth2 scopes to request when exchanging JWT for access token","type":"array","items":{"type":"string"},"title":"Scopes"},"token_response_field":{"description":"Token field to extract from the token endpoint response.","type":"string","default":"access_token","enum":["access_token","id_token"],"title":"Token Response Field"},"secret_key":{"type":"string","title":"Secret Key"}},"required":["name","provider","issuer","audience","subject","token_url","secret_key"],"title":"CreateOAuth2JWTRequest"},"CreateOrderRequest":{"type":"object","properties":{"sandbox":{"description":"When true, creates a sandbox order that auto-progresses without producer intervention.","type":"boolean","default":false,"title":"Sandbox"}},"example":{"sandbox":false},"title":"CreateOrderRequest"},"CreateOrderResponse":{"type":"object","properties":{"order_id":{"description":"The ID of the newly created order.","$ref":"#/components/schemas/OrderId"},"sandbox":{"description":"Whether this is a sandbox order.","type":"boolean","default":false,"title":"Sandbox"}},"example":{"order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","sandbox":false},"required":["order_id"],"title":"CreateOrderResponse"},"CreatePhoneNumberResponseModel":{"type":"object","properties":{"phone_number_id":{"description":"Phone entity ID","type":"string","title":"Phone Number Id"}},"required":["phone_number_id"],"title":"CreatePhoneNumberResponseModel"},"CreatePrivateKeyJWTRequest":{"description":"Request model for creating Private Key JWT auth connections - inherits common settings and includes sensitive fields","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"private_key_jwt","const":"private_key_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"secret_key":{"type":"string","title":"Secret Key"}},"required":["name","provider","issuer","audience","subject","secret_key"],"title":"CreatePrivateKeyJWTRequest"},"CreateProductParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_product","const":"create_product","title":"Smb Tool Type"}},"title":"CreateProductParams"},"CreatePronunciationDictionaryResponseModel":{"type":"object","properties":{"status":{"description":"The status of the create pronunciation dictionary request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"CreatePronunciationDictionaryResponseModel"},"CreateResponseUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"CreateResponseUnitTestRequest"},"CreateSIPTrunkPhoneNumberRequestV2":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"provider":{"type":"string","default":"sip_trunk","const":"sip_trunk","title":"Provider"},"agent_id":{"description":"Agent ID to assign the phone number to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"inbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/InboundSIPTrunkConfigRequestModel"},{"type":"null"}]},"outbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/OutboundSIPTrunkConfigRequestModel"},{"type":"null"}]}},"required":["phone_number","label"],"title":"CreateSIPTrunkPhoneNumberRequestV2","x-fern-type-name":"CreateSIPTrunkPhoneNumberRequest"},"CreateSecretEnvironmentVariableRequest":{"type":"object","properties":{"type":{"type":"string","const":"secret","title":"Type"},"label":{"description":"Unique label for the environment variable.","type":"string","title":"Label"},"values":{"description":"Environment-specific secret references. Must include 'production' key.","type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableSecretValueRequest"},"title":"Values"}},"required":["type","label","values"],"title":"CreateSecretEnvironmentVariableRequest"},"CreateServiceParams":{"description":"Create a new service (classic, rental, or group) in the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_service","const":"create_service","title":"Smb Tool Type"}},"title":"CreateServiceParams"},"CreateSimulationTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"tool_mock_overrides":{"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).","type":"object","additionalProperties":{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},"title":"Tool Mock Overrides"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"CreateSimulationTestRequest"},"CreateSpeechEngineRequest":{"type":"object","properties":{"name":{"description":"Name of the speech engine","type":"string","default":"Speech Engine","title":"Name"},"speech_engine":{"description":"Speech engine WebSocket configuration","$ref":"#/components/schemas/SpeechEngineConfig"},"asr":{"description":"ASR configuration","$ref":"#/components/schemas/ASRConversationalConfig"},"tts":{"description":"TTS configuration","$ref":"#/components/schemas/TTSConversationalConfig-Input"},"turn":{"description":"Turn detection configuration","$ref":"#/components/schemas/BaseTurnConfig"},"conversation":{"description":"Conversation configuration (client events, etc.)","$ref":"#/components/schemas/ConversationConfig-Input"},"privacy":{"description":"Privacy settings (recording, retention, zero retention mode)","$ref":"#/components/schemas/PrivacyConfig-Input"},"call_limits":{"description":"Concurrency and daily conversation limits for this speech engine","$ref":"#/components/schemas/AgentCallLimits"},"language":{"description":"Language for the speech engine","type":"string","default":"en","title":"Language"},"tags":{"description":"Tags for categorization","type":"array","items":{"type":"string"},"title":"Tags"},"overrides":{"description":"Override settings the client may set during conversation initiation","$ref":"#/components/schemas/SpeechEngineConversationInitiationClientDataConfig"}},"required":["speech_engine"],"title":"CreateSpeechEngineRequest"},"CreateStaffParams":{"description":"Create a new staff member in the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"create_staff","const":"create_staff","title":"Smb Tool Type"}},"title":"CreateStaffParams"},"CreateStringEnvironmentVariableRequest":{"type":"object","properties":{"type":{"type":"string","const":"string","title":"Type"},"label":{"description":"Unique label for the environment variable.","type":"string","title":"Label"},"values":{"description":"Environment-specific values. Must include 'production' key.","type":"object","additionalProperties":{"type":"string","minLength":1},"title":"Values"}},"required":["type","label","values"],"title":"CreateStringEnvironmentVariableRequest"},"CreateToolCallUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Input"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be created at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"CreateToolCallUnitTestRequest"},"CreateTwilioPhoneNumberRequest":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"provider":{"type":"string","default":"twilio","const":"twilio","title":"Provider"},"agent_id":{"description":"Agent ID to assign the phone number to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"sid":{"description":"Twilio Account SID","type":"string","title":"Sid"},"token":{"description":"Twilio Auth Token","type":"string","title":"Token"},"region_config":{"description":"Twilio Additional Region Configuration","anyOf":[{"$ref":"#/components/schemas/RegionConfigRequest"},{"type":"null"}]},"enable_sms":{"description":"Route inbound SMS to ElevenLabs. On by default; set to false to skip SMS configuration for numbers that don't support it.","type":"boolean","default":true,"title":"Enable Sms"}},"required":["phone_number","label","sid","token"],"title":"CreateTwilioPhoneNumberRequest"},"CriteriaScoringMode":{"type":"string","default":"binary","enum":["binary","numeric_uniform"],"title":"CriteriaScoringMode"},"CueOptionsRequest":{"type":"object","properties":{"min_duration_ms":{"description":"Minimum duration of each cue in milliseconds.","type":"integer","default":1000,"maximum":2000,"title":"Min Duration Ms"},"max_duration_ms":{"description":"Maximum duration of each cue in milliseconds.","type":"integer","default":7000,"minimum":4000,"title":"Max Duration Ms"},"max_lines_per_cue":{"description":"Maximum number of lines per cue.","type":"integer","default":2,"maximum":3,"minimum":1,"title":"Max Lines Per Cue"},"max_chars_per_line":{"description":"Maximum number of characters per line in a cue.","type":"integer","default":42,"maximum":50,"minimum":16,"title":"Max Chars Per Line"},"max_chars_per_s":{"description":"Maximum characters per second reading speed. If not set, no reading speed limit is applied.","anyOf":[{"type":"integer","maximum":30,"minimum":15},{"type":"null"}],"title":"Max Chars Per S"},"min_gap_between_cues_frames":{"description":"Minimum gap between consecutive cues in frames. If not set, no minimum gap is enforced.","anyOf":[{"type":"integer","maximum":6,"minimum":0},{"type":"null"}],"title":"Min Gap Between Cues Frames"}},"example":{"max_chars_per_line":42,"max_duration_ms":7000,"max_lines_per_cue":2,"min_duration_ms":1000},"title":"CueOptionsRequest"},"Currency":{"type":"string","enum":["usd","eur","inr","pln"],"title":"Currency"},"CustomGuardrail-Input":{"description":"Container for custom guardrails, matching ModerationGuardrail pattern","type":"object","properties":{"config":{"$ref":"#/components/schemas/CustomGuardrailsConfig-Input"}},"title":"CustomGuardrail"},"CustomGuardrail-Output":{"description":"Container for custom guardrails, matching ModerationGuardrail pattern","type":"object","properties":{"config":{"$ref":"#/components/schemas/CustomGuardrailsConfig-Output"}},"title":"CustomGuardrail"},"CustomGuardrailConfig":{"description":"Single custom guardrail configuration","type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"},"name":{"description":"User-facing name for this guardrail","type":"string","maxLength":500,"minLength":1,"title":"Name"},"prompt":{"description":"Instruction describing what to block, e.g. 'don't talk about politics'","type":"string","maxLength":10000,"minLength":1,"title":"Prompt"},"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"model":{"description":"LLM model to use for custom guardrail evaluation","type":"string","default":"gemini-2.5-flash-lite","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"],"title":"Model"},"history_message_count":{"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 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.","type":"integer","default":0,"maximum":100,"minimum":0,"title":"History Message Count"},"history_include_tool_calls":{"description":"When enabled, the history also renders the agent's tool calls, their input arguments, and the tool results, interleaved with the text, so an action between two agent messages is visible. Off by default: history shows only user and agent text. Tool payloads can be large and can mislead smaller evaluator models, so enabling this raises token cost.","type":"boolean","default":false,"title":"History Include Tool Calls","x-fern-ignore":true},"trigger_action":{"discriminator":{"propertyName":"type","mapping":{"end_call":"#/components/schemas/EndCallTriggerAction","retry":"#/components/schemas/RetryTriggerAction"}},"oneOf":[{"$ref":"#/components/schemas/EndCallTriggerAction"},{"$ref":"#/components/schemas/RetryTriggerAction"}],"title":"Trigger Action"},"evaluate_full_response_only":{"description":"Evaluate once against the complete non-TTS response instead of cumulative partials. Requires blocking mode.","type":"boolean","default":false,"title":"Evaluate Full Response Only"}},"required":["name","prompt"],"title":"CustomGuardrailConfig"},"CustomGuardrailsConfig-Input":{"description":"Config container for custom guardrails list","type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Configs"}},"title":"CustomGuardrailsConfig"},"CustomGuardrailsConfig-Output":{"description":"Config container for custom guardrails list","type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Configs"}},"title":"CustomGuardrailsConfig"},"CustomHeaderAuthResponse":{"description":"Response model for Custom Header Auth auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"custom_header_auth","const":"custom_header_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"header_name":{"description":"The name of the header to use for authentication (e.g., 'x-api-key')","type":"string","title":"Header Name"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","header_name","id"],"title":"CustomHeaderAuthResponse"},"CustomLLM":{"type":"object","properties":{"url":{"description":"The URL of the Chat Completions compatible endpoint","type":"string","title":"Url"},"model_id":{"description":"The model ID to be used if URL serves multiple models","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"api_key":{"description":"The API key for authentication. Either a workspace secret reference {'secret_id': '...'} or an environment variable reference {'env_var_label': '...'}.","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"},{"type":"null"}],"title":"Api Key"},"auth_connection":{"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.","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"},"request_headers":{"description":"Headers that should be included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"api_version":{"description":"The API version to use for the request","anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Version"},"api_type":{"description":"The API type to use (chat_completions or responses)","default":"chat_completions","$ref":"#/components/schemas/CustomLLMAPIType"}},"required":["url"],"title":"CustomLLM"},"CustomLLMAPIType":{"type":"string","default":"chat_completions","enum":["chat_completions","responses"],"title":"CustomLLMAPIType"},"CustomSIPHeader":{"description":"Custom SIP header for phone transfers with a static (validated) value.","type":"object","properties":{"type":{"type":"string","default":"static","const":"static","title":"Type"},"key":{"description":"The SIP header name (e.g., 'X-Customer-ID')","type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","title":"Key"},"value":{"description":"The header value","type":"string","maxLength":512,"minLength":1,"pattern":"^[\\x09\\x20-\\x7E]+$","title":"Value"}},"required":["key","value"],"title":"CustomSIPHeader"},"CustomSIPHeaderWithDynamicVariable":{"description":"Custom SIP header for phone transfers with a dynamic variable reference.\nThe value is a variable name that will be resolved at runtime.\nValue is not validated here since it will be substituted with actual value later.","type":"object","properties":{"type":{"type":"string","const":"dynamic","title":"Type"},"key":{"description":"The SIP header name (e.g., 'X-Customer-ID')","type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","title":"Key"},"value":{"description":"The dynamic variable name to resolve","type":"string","minLength":1,"title":"Value"}},"required":["type","key","value"],"title":"CustomSIPHeaderWithDynamicVariable"},"DTMFInputConfig":{"description":"Configuration for DTMF (keypad) input collection during phone calls.","type":"object","properties":{"dtmf_input_timeout":{"description":"Timeout in seconds to wait for additional DTMF digits","type":"number","default":2,"maximum":10,"minimum":0.5,"title":"Dtmf Input Timeout"},"hash_terminator":{"description":"If true, pressing # immediately completes DTMF input","type":"boolean","default":true,"title":"Hash Terminator"}},"title":"DTMFInputConfig"},"DashboardCallSuccessChartModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"call_success","const":"call_success","title":"Type"}},"required":["name"],"title":"DashboardCallSuccessChartModel"},"DashboardCriteriaChartModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"criteria","const":"criteria","title":"Type"},"criteria_id":{"type":"string","title":"Criteria Id"}},"required":["name","criteria_id"],"title":"DashboardCriteriaChartModel"},"DashboardDataCollectionChartModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"data_collection","const":"data_collection","title":"Type"},"data_collection_id":{"type":"string","title":"Data Collection Id"}},"required":["name","data_collection_id"],"title":"DashboardDataCollectionChartModel"},"DataCollectionResultCommonModel":{"type":"object","properties":{"data_collection_id":{"type":"string","title":"Data Collection Id"},"value":{"title":"Value"},"json_schema":{"anyOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"type":"null"}]},"rationale":{"type":"string","title":"Rationale"}},"required":["data_collection_id","rationale"],"title":"DataCollectionResultCommonModel"},"DefaultSharingGroupConfig":{"type":"object","properties":{"group_id":{"description":"The ID of the group to share with","type":"string","title":"Group Id"},"permission_level":{"description":"The permission level to grant to the group","type":"string","enum":["admin","editor","viewer"],"title":"Permission Level"}},"required":["group_id","permission_level"],"title":"DefaultSharingGroupConfig"},"DefaultSharingGroupResponseModel":{"type":"object","properties":{"group":{"description":"The group to share with by default","$ref":"#/components/schemas/WorkspaceGroupResponseModel"},"permission_level":{"description":"The permission level to grant to the group","type":"string","enum":["admin","editor","viewer"],"title":"Permission Level"}},"required":["group","permission_level"],"title":"DefaultSharingGroupResponseModel"},"DeleteAgentProcedureParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_agent_procedure","const":"delete_agent_procedure","title":"Smb Tool Type"}},"title":"DeleteAgentProcedureParams"},"DeleteAgentRuleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_agent_rule","const":"delete_agent_rule","title":"Smb Tool Type"}},"title":"DeleteAgentRuleParams"},"DeleteAssetParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_asset","const":"delete_asset","title":"Smb Tool Type"}},"title":"DeleteAssetParams"},"DeleteCalendarEventParams":{"description":"Permanently remove a previously-cancelled calendar event.\n\nThis delete tool is the irreversible follow-up to cancel_calendar_event.\nThe backend rejects the call (422) if the event hasn't been\ncancelled yet, so the only safe path is cancel-then-delete.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_calendar_event","const":"delete_calendar_event","title":"Smb Tool Type"}},"title":"DeleteCalendarEventParams"},"DeleteChapterResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio chapter deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteChapterResponseModel"},"DeleteClientInteractionParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_client_interaction","const":"delete_client_interaction","title":"Smb Tool Type"}},"title":"DeleteClientInteractionParams"},"DeleteClientParams":{"description":"Delete a client, cascading deletion of all their appointments first.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_client","const":"delete_client","title":"Smb Tool Type"}},"title":"DeleteClientParams"},"DeleteDubbingResponseModel":{"type":"object","properties":{"status":{"description":"The status of the dubbing project. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteDubbingResponseModel"},"DeleteGroupSessionParams":{"description":"Permanently remove a previously-cancelled group session.\n\nGroup analogue of ``delete_calendar_event``: cancel\n(``cancel_group_session_for_all``) is the soft, history-preserving step;\nthis tool is the irreversible follow-up that drops the row from Mongo\nand the staff Google Calendar entirely. The backend rejects the call\n(422) if the session hasn't been cancelled yet, so the only safe path\nis cancel-then-delete.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_group_session","const":"delete_group_session","title":"Smb Tool Type"}},"title":"DeleteGroupSessionParams"},"DeleteHistoryItemResponse":{"type":"object","properties":{"status":{"description":"The status of the deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with http code 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteHistoryItemResponse","x-fern-type-name":"DeleteHistoryItemResponse"},"DeleteHolidayParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_holiday","const":"delete_holiday","title":"Smb Tool Type"}},"title":"DeleteHolidayParams"},"DeleteLocationParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_location","const":"delete_location","title":"Smb Tool Type"}},"title":"DeleteLocationParams"},"DeleteProductParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_product","const":"delete_product","title":"Smb Tool Type"}},"title":"DeleteProductParams"},"DeleteProjectResponseModel":{"type":"object","properties":{"status":{"description":"The status of the studio project deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteProjectResponseModel"},"DeleteSampleResponseModel":{"type":"object","properties":{"status":{"description":"The status of the sample deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteSampleResponseModel","x-fern-type-name":"DeleteSampleResponse"},"DeleteServiceParams":{"description":"Delete an existing service from the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_service","const":"delete_service","title":"Smb Tool Type"}},"title":"DeleteServiceParams"},"DeleteStaffParams":{"description":"Delete an existing staff member from the system.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"delete_staff","const":"delete_staff","title":"Smb Tool Type"}},"title":"DeleteStaffParams"},"DeleteVoiceResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteVoiceResponseModel"},"DeleteVoiceSampleResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice sample deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteVoiceSampleResponseModel"},"DeleteWorkspaceGroupMemberResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace group member deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteWorkspaceGroupMemberResponseModel"},"DeleteWorkspaceInviteResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace invite deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteWorkspaceInviteResponseModel"},"DeleteWorkspaceWebhookResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace webhook deletion request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"DeleteWorkspaceWebhookResponseModel"},"DeliverableInfo":{"type":"object","properties":{"signed_url":{"description":"A time-limited URL to download the delivered file.","type":"string","title":"Signed Url"},"content_type":{"description":"The MIME type of the delivered file (e.g. 'video/mp4').","type":"string","title":"Content Type"},"name":{"description":"The name of the delivered file.","type":"string","title":"Name"},"version":{"description":"The version number of the deliverable.","type":"integer","default":1,"title":"Version"}},"example":{"content_type":"video/mp4","name":"[fr][mp4] Item #cbaba1fe","signed_url":"https://storage.googleapis.com/example-bucket/deliverables/output_fr.mp4?X-Goog-Signature=...","version":1},"required":["signed_url","content_type","name"],"title":"DeliverableInfo"},"DependentAvailableAgentIdentifier":{"type":"object","properties":{"referenced_resource_ids":{"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly.","type":"array","items":{"type":"string"},"title":"Referenced Resource Ids"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"available","const":"available","title":"Type"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"access_level":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"}},"required":["id","name","created_at_unix_secs","access_level"],"title":"DependentAvailableAgentIdentifier"},"DependentAvailableMCPServerIdentifier":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"available","const":"available","title":"Type"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"access_level":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"}},"required":["id","name","created_at_unix_secs","access_level"],"title":"DependentAvailableMCPServerIdentifier"},"DependentAvailableToolIdentifier":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","default":"available","const":"available","title":"Type"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"access_level":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"}},"required":["id","name","created_at_unix_secs","access_level"],"title":"DependentAvailableToolIdentifier"},"DependentBranchInfo":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"type":"string","title":"Agent Name"},"branch_id":{"type":"string","title":"Branch Id"},"branch_name":{"type":"string","title":"Branch Name"},"is_main":{"type":"boolean","title":"Is Main"}},"required":["agent_id","agent_name","branch_id","branch_name","is_main"],"title":"DependentBranchInfo"},"DependentIntegrationConnectionIdentifier":{"description":"Identifier for an integration connection that depends on an auth connection","type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"DependentIntegrationConnectionIdentifier"},"DependentPhoneNumberIdentifier":{"type":"object","properties":{"phone_number_id":{"type":"string","title":"Phone Number Id"},"phone_number":{"type":"string","title":"Phone Number"},"label":{"type":"string","title":"Label"},"provider":{"$ref":"#/components/schemas/TelephonyProvider"}},"required":["phone_number_id","phone_number","label","provider"],"title":"DependentPhoneNumberIdentifier"},"DependentUnknownAgentIdentifier":{"description":"A model that represents an agent dependent on a knowledge base/tools\nto which the user has no direct access.","type":"object","properties":{"referenced_resource_ids":{"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly.","type":"array","items":{"type":"string"},"title":"Referenced Resource Ids"},"id":{"type":"string","title":"Id"},"type":{"type":"string","default":"unknown","const":"unknown","title":"Type"}},"required":["id"],"title":"DependentUnknownAgentIdentifier"},"DependentUnknownMCPServerIdentifier":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","default":"unknown","const":"unknown","title":"Type"}},"required":["id"],"title":"DependentUnknownMCPServerIdentifier"},"DependentUnknownToolIdentifier":{"description":"A model that represents an tool dependent on a knowledge base/tools\nto which the user has no direct access.","type":"object","properties":{"type":{"type":"string","default":"unknown","const":"unknown","title":"Type"},"id":{"type":"string","title":"Id"}},"required":["id"],"title":"DependentUnknownToolIdentifier"},"DetailedMusicResponse":{"description":"Response model for structured music generation endpoint","type":"object","properties":{"composition_plan":{"description":"The composition plan used to generate the song","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"}],"title":"Composition Plan"},"song_metadata":{"description":"The metadata of the generated song","$ref":"#/components/schemas/SongMetadata"},"words_timestamps":{"description":"The timestamps of the words in the generated song","anyOf":[{"items":{"$ref":"#/components/schemas/WordTimestamp"},"type":"array"},{"type":"null"}],"title":"Words Timestamps"}},"example":{"composition_plan":{"negative_global_styles":["metal","hip-hop","country"],"positive_global_styles":["pop","rock","jazz"],"sections":[{"duration_ms":10000,"lines":["Verse 1 lyrics"],"negative_local_styles":["metal","hip-hop","country"],"positive_local_styles":["pop","rock","jazz"],"section_name":"Verse 1"}]},"song_metadata":{"description":"My Song Description","genres":["pop","rock","jazz"],"is_explicit":false,"languages":["en","fr"],"title":"My Song"},"words_timestamps":[{"end_ms":1000,"start_ms":0,"word":"Verse"},{"end_ms":2000,"start_ms":1000,"word":"1"},{"end_ms":3000,"start_ms":2000,"word":"lyrics"}]},"required":["composition_plan","song_metadata","words_timestamps"],"title":"DetailedMusicResponse"},"DetectedEntity":{"type":"object","properties":{"text":{"description":"The text that was identified as an entity.","type":"string","title":"Text"},"entity_type":{"description":"The type of entity detected (e.g., 'credit_card', 'email_address', 'person_name').","type":"string","title":"Entity Type"},"start_char":{"description":"Start character position in the transcript text.","type":"integer","title":"Start Char"},"end_char":{"description":"End character position in the transcript text.","type":"integer","title":"End Char"}},"required":["text","entity_type","start_char","end_char"],"title":"DetectedEntity"},"DeviceModel":{"description":"Device information.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/device","type":"object","properties":{"ip":{"description":"IP address","anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"hostname":{"description":"Device hostname","anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"type_id":{"description":"Device type ID (99 = Unknown)","type":"integer","default":99,"title":"Type Id"}},"additionalProperties":false,"title":"DeviceModel"},"DialogueInput":{"type":"object","properties":{"text":{"description":"The text to be converted into speech.","type":"string","title":"Text"},"voice_id":{"description":"The ID of the voice to be used for the generation.","type":"string","title":"Voice Id"}},"required":["text","voice_id"],"title":"DialogueInput"},"DialogueInputResponseModel":{"type":"object","properties":{"text":{"description":"The text of the dialogue input line.","type":"string","title":"Text"},"voice_id":{"description":"The ID of the voice used for this dialogue input line.","type":"string","title":"Voice Id"},"voice_name":{"description":"The name of the voice used for this dialogue input line.","type":"string","title":"Voice Name"}},"required":["text","voice_id","voice_name"],"title":"DialogueInputResponseModel"},"DirectPublishingReadResponseModel":{"type":"object","properties":{"read_id":{"type":"string","title":"Read Id"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"updated_at_unix":{"type":"integer","title":"Updated At Unix"},"word_count":{"type":"integer","title":"Word Count"},"char_count":{"type":"integer","title":"Char Count"},"chapters":{"type":"array","items":{"$ref":"#/components/schemas/ReadMetadataChapterDBModel"},"title":"Chapters"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"article_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Article Image Url"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"display_mode":{"anyOf":[{"type":"string","enum":["text","audio-only","text-with-audio"]},{"type":"null"}],"title":"Display Mode"},"genre":{"anyOf":[{"items":{"type":"string","enum":["Fantasy","Romance","Science Fiction","Mystery and Thriller","Action and Adventure","Dystopia","Business and Economics","Technology","Christian & Inspirational","Horror","Biography and Memoir","Education and Learning","History","Children's Literature","Young Adult","Fairy Tales and Folklore","Fan Fiction","General Fiction","Health and Wellness","Historical Fiction","Humor","Literary Classics","Philosophy","Poetry","Politics and Government","Psychology","Science and Nature","Self-Help","Spirituality and Religion","Travel","True Crime","Other"]},"type":"array"},{"type":"null"}],"title":"Genre"},"fiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fiction"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"original_file_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original File Type"},"target_audience":{"anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"title":"Target Audience"},"mature_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mature Content"},"safesearch_adult":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Safesearch Adult"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin"},"publication_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publication Date"},"isbn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isbn"},"ean":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ean"},"legal_terms":{"anyOf":[{"$ref":"#/components/schemas/ReadLegalTerms"},{"type":"null"}]},"content_guidelines_terms":{"anyOf":[{"$ref":"#/components/schemas/ReadLegalTerms"},{"type":"null"}]},"last_updated_from_project_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Updated From Project Unix"},"publishing_project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publishing Project Id"},"publishing_state":{"type":"string","default":"published","title":"Publishing State"},"publisher_profile_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publisher Profile Id"},"quality_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quality Score"},"publisher":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publisher"},"copyright":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Copyright"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"distribution_territories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Distribution Territories"},"edition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edition"},"contributors":{"anyOf":[{"items":{"$ref":"#/components/schemas/Contributor"},"type":"array"},{"type":"null"}],"title":"Contributors"},"payout_type":{"anyOf":[{"type":"string","enum":["none","engagement_based","fixed_payout"]},{"type":"null"}],"title":"Payout Type"},"list_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"List Price"},"currency":{"anyOf":[{"type":"string","const":"usd"},{"type":"null"}],"title":"Currency"},"original_audio_project_export_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Audio Project Export Id"},"original_audio_document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Audio Document Id"},"series_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Series Id"},"volume":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volume"},"published_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Published At Unix"},"read_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Read Slug"},"preview_audio_object":{"anyOf":[{"$ref":"#/components/schemas/PreviewAudioDBModel"},{"type":"null"}]},"sample_config":{"anyOf":[{"$ref":"#/components/schemas/SampleConfigDBModel"},{"type":"null"}]},"review":{"anyOf":[{"$ref":"#/components/schemas/ReviewResponseModel"},{"type":"null"}]},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"can_use_assistant":{"type":"boolean","default":true,"title":"Can Use Assistant"},"is_voice_changer_on":{"type":"boolean","default":false,"title":"Is Voice Changer On"}},"required":["read_id","created_at_unix","updated_at_unix","word_count","char_count","chapters"],"title":"DirectPublishingReadResponseModel"},"DiscountResponseModel":{"type":"object","properties":{"discount_percent_off":{"description":"The discount applied to the invoice. E.g. [20.0f] for 20% off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Percent Off"},"discount_amount_off":{"description":"The discount applied to the invoice. E.g. [20.0f] for 20 cents off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Amount Off"}},"title":"DiscountResponseModel"},"DoDubbingResponseModel":{"type":"object","properties":{"dubbing_id":{"description":"The ID of the dubbing project.","type":"string","title":"Dubbing Id"},"expected_duration_sec":{"description":"The expected duration of the dubbing project in seconds.","type":"number","title":"Expected Duration Sec"}},"example":{"dubbing_id":"21m00Tcm4TlvDq8ikWAM","expected_duration_sec":127.5},"required":["dubbing_id","expected_duration_sec"],"title":"DoDubbingResponseModel","x-fern-type-name":"DoDubbingResponse"},"DocumentUsageModeEnum":{"type":"string","default":"auto","enum":["prompt","auto"],"title":"DocumentUsageModeEnum"},"DocxExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"docx","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"DocxExportOptions"},"DubOrderItemRequest":{"type":"object","properties":{"kind":{"description":"The type of order item.","type":"string","default":"dub","const":"dub","title":"Kind"},"media_id":{"description":"The ID of the uploaded media file to dub.","$ref":"#/components/schemas/MediaId"},"source_language":{"description":"The language code of the source media (e.g. 'en', 'es').","type":"string","title":"Source Language"},"destination_languages":{"description":"List of target language codes to dub the media into.","type":"array","items":{"type":"string"},"title":"Destination Languages"},"include_captions":{"description":"Whether to generate captions for the dubbed outputs.","type":"boolean","title":"Include Captions"},"include_source_captions":{"description":"Whether to generate captions for the source language.","type":"boolean","title":"Include Source Captions"},"instructions":{"description":"Optional free-text instructions for the dubbing team.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"captions_sdh":{"description":"Whether captions should use SDH format, which includes descriptions for deaf and hard-of-hearing viewers.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Captions Sdh"}},"example":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgatk6h0fwxrtbjade61yqhx","source_language":"en"},"required":["media_id","source_language","destination_languages","include_captions","include_source_captions"],"title":"DubOrderItemRequest"},"DubbedSegment":{"type":"object","properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"subtitles":{"type":"array","items":{"$ref":"#/components/schemas/SegmentSubtitleFrame"},"title":"Subtitles"},"audio_stale":{"type":"boolean","title":"Audio Stale"},"media_ref":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]}},"required":["start_time","end_time","text","subtitles","audio_stale","media_ref"],"title":"DubbedSegment"},"DubbingLanguageListResponse":{"type":"object","properties":{"languages":{"description":"The page of language targets for the project.","type":"array","items":{"$ref":"#/components/schemas/DubbingLanguageResponse"},"title":"Languages"},"next_cursor":{"description":"Cursor for the next page, or null when there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["languages"],"title":"DubbingLanguageListResponse"},"DubbingLanguageOutputs":{"description":"Signed, time-limited download URLs for a language target's outputs.","type":"object","properties":{"lossless_audio":{"description":"Signed URL of the dubbed lossless audio track.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Lossless Audio"}},"title":"DubbingLanguageOutputs"},"DubbingLanguageResponse":{"type":"object","properties":{"language_id":{"description":"Unique identifier of the language target.","type":"string","title":"Language Id"},"project_id":{"description":"Identifier of the parent dubbing project.","type":"string","title":"Project Id"},"target_language":{"description":"BCP-47 language tag this target is dubbed into.","type":"string","title":"Target Language"},"status":{"description":"Lifecycle status: 'queued' (waiting on the project), 'processing', 'completed', 'stale' (source/transcript changed), or 'failed'.","type":"string","enum":["queued","processing","completed","stale","failed"],"title":"Status"},"model_id":{"description":"Effective dubbing model id (target override or project default).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"voice_settings":{"description":"Voice settings applied to the whole language, or null if unset.","anyOf":[{"$ref":"#/components/schemas/VoiceSettings"},{"type":"null"}]},"outputs":{"description":"Signed output URLs; null until the target has produced an output (present once 'completed', and kept while 'stale' -- compare `output_revision` against `revision` to tell whether the output is up to date).","anyOf":[{"$ref":"#/components/schemas/DubbingLanguageOutputs"},{"type":"null"}]},"revision":{"description":"Monotonic counter incremented whenever this target's transcript changes (a source edit affecting it, or an edit to its translation).","type":"integer","title":"Revision"},"output_revision":{"description":"The `revision` the current dubbed output was generated from; equal to `revision` when up to date, less than it when 'stale'. Null until a generation has completed.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Revision"},"created_at":{"description":"When the language target was created.","type":"string","format":"date-time","title":"Created At"},"updated_at":{"description":"When the language target was last updated.","type":"string","format":"date-time","title":"Updated At"}},"required":["language_id","project_id","target_language","status","revision","created_at","updated_at"],"title":"DubbingLanguageResponse"},"DubbingMediaMetadata":{"type":"object","properties":{"content_type":{"description":"The content type of the media.","type":"string","title":"Content Type"},"duration":{"description":"The duration of the media in seconds.","type":"number","title":"Duration"}},"required":["content_type","duration"],"title":"DubbingMediaMetadata"},"DubbingMediaReference":{"type":"object","properties":{"src":{"type":"string","title":"Src"},"content_type":{"type":"string","title":"Content Type"},"bucket_name":{"type":"string","title":"Bucket Name"},"random_path_slug":{"type":"string","title":"Random Path Slug"},"duration_secs":{"type":"number","title":"Duration Secs"},"is_audio":{"type":"boolean","title":"Is Audio"},"url":{"type":"string","title":"Url"}},"required":["src","content_type","bucket_name","random_path_slug","duration_secs","is_audio","url"],"title":"DubbingMediaReference"},"DubbingMetadataPageResponseModel":{"type":"object","properties":{"dubs":{"type":"array","items":{"$ref":"#/components/schemas/DubbingMetadataResponse"},"title":"Dubs"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["dubs","next_cursor","has_more"],"title":"DubbingMetadataPageResponseModel"},"DubbingMetadataResponse":{"type":"object","properties":{"dubbing_id":{"description":"The ID of the dubbing project.","type":"string","title":"Dubbing Id"},"name":{"description":"The name of the dubbing project.","type":"string","title":"Name"},"status":{"description":"The state this dub is in.","type":"string","examples":["preparing","queued","dubbing","dubbed","failed","cloning"],"title":"Status"},"source_language":{"description":"Once dubbing has completed, the ISO-639-1 code of the original media's source language.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"target_languages":{"description":"The ISO-639-1 code of the languages this media has been dubbed into.","type":"array","items":{"type":"string"},"title":"Target Languages"},"editable":{"description":"Whether this dubbing project is editable in Dubbing Studio.","type":"boolean","default":false,"title":"Editable"},"created_at":{"description":"Timestamp this dub was created.","type":"string","format":"date-time","title":"Created At"},"media_metadata":{"description":"Metadata, such as the length in seconds and content type, of the dubbed content.","anyOf":[{"$ref":"#/components/schemas/DubbingMediaMetadata"},{"type":"null"}]},"error":{"description":"Error message indicate, if this dub has failed, what happened.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"example":{"created_at":"2025-07-15T14:49:41.149000","dubbing_id":"21m00Tcm4TlvDq8ikWAM","editable":true,"media_metadata":{"content_type":"video/mp4","duration":127.5},"name":"My Dubbing Project","source_language":"en","status":"dubbed","target_languages":["es","fr","de"]},"required":["dubbing_id","name","status","source_language","target_languages","created_at"],"title":"DubbingMetadataResponse"},"DubbingProjectListResponse":{"type":"object","properties":{"projects":{"description":"The page of dubbing projects the caller can access.","type":"array","items":{"$ref":"#/components/schemas/DubbingProjectResponse"},"title":"Projects"},"next_cursor":{"description":"Cursor for the next page, or null when there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["projects"],"title":"DubbingProjectListResponse"},"DubbingProjectResponse":{"type":"object","properties":{"project_id":{"description":"Unique identifier of the dubbing project.","type":"string","title":"Project Id"},"status":{"description":"Lifecycle status of the project: 'preparing'/'processing' while it transcribes, 'ready' once transcription is done, or 'failed'.","type":"string","enum":["queued","preparing","processing","ready","failed"],"title":"Status"},"reference":{"description":"Optional free-form string the customer can provide to identify the project on their end.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"},"source_language":{"description":"BCP-47 language tag of the source media (null if auto-detected).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"model_id":{"description":"Default dubbing model id applied to this project's language targets.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"media":{"description":"Source media metadata; null until the project is ready.","anyOf":[{"$ref":"#/components/schemas/DubbingSourceMediaInfo"},{"type":"null"}]},"language_ids":{"description":"Identifiers of the language targets created under this project.","type":"array","items":{"type":"string"},"default":[],"title":"Language Ids"},"revision":{"description":"Monotonic counter incremented whenever the source transcript is edited (segment add/edit/delete).","type":"integer","title":"Revision"},"created_at":{"description":"When the project was created.","type":"string","format":"date-time","title":"Created At"},"updated_at":{"description":"When the project was last updated.","type":"string","format":"date-time","title":"Updated At"}},"required":["project_id","status","revision","created_at","updated_at"],"title":"DubbingProjectResponse"},"DubbingRenderResponseModel":{"type":"object","properties":{"version":{"type":"integer","title":"Version"},"render_id":{"type":"string","title":"Render Id"}},"required":["version","render_id"],"title":"DubbingRenderResponseModel"},"DubbingResource":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"version":{"type":"integer","title":"Version"},"source_language":{"type":"string","title":"Source Language"},"target_languages":{"type":"array","items":{"type":"string"},"title":"Target Languages"},"input":{"$ref":"#/components/schemas/DubbingMediaReference"},"background":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]},"foreground":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]},"speaker_tracks":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SpeakerTrack"},"title":"Speaker Tracks"},"speaker_segments":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SpeakerSegment"},"title":"Speaker Segments"},"renders":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Render"},"title":"Renders"}},"required":["id","version","source_language","target_languages","input","background","foreground","speaker_tracks","speaker_segments","renders"],"title":"DubbingResource"},"DubbingSegmentCreateRequest":{"description":"A new source segment; its id and word-level alignment are assigned by the server.","type":"object","properties":{"text":{"description":"The text of the new segment.","type":"string","title":"Text"},"speaker_id":{"description":"Identifier of the segment's speaker.","type":"string","title":"Speaker Id"},"start_s":{"description":"Start time of the segment, in seconds.","type":"number","title":"Start S"},"end_s":{"description":"End time of the segment, in seconds.","type":"number","title":"End S"}},"required":["text","speaker_id","start_s","end_s"],"title":"DubbingSegmentCreateRequest"},"DubbingSegmentUpdateRequest":{"description":"A partial update to a source segment; omitted fields are left unchanged.","type":"object","properties":{"text":{"description":"New text for the segment.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"speaker_id":{"description":"New speaker id for the segment.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Id"},"start_s":{"description":"New start time, in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start S"},"end_s":{"description":"New end time, in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"End S"}},"title":"DubbingSegmentUpdateRequest"},"DubbingSourceMediaInfo":{"description":"Metadata about the project's source media.","type":"object","properties":{"filename":{"description":"Original filename of the uploaded source media (null for URL sources).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"},"duration_s":{"description":"Duration of the source media in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration S"},"has_video":{"description":"Whether the source media contains a video stream.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Video"},"mime_type":{"description":"MIME type of the uploaded source media.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"}},"title":"DubbingSourceMediaInfo"},"DubbingSourceSegmentUpdateResponse":{"description":"The result of a source-segment add or edit: the segment and the new revision.","type":"object","properties":{"segment":{"description":"The segment in its updated state.","$ref":"#/components/schemas/DubbingTranscriptSegment"},"revision":{"description":"The project's source-transcript revision after this edit.","type":"integer","title":"Revision"}},"required":["segment","revision"],"title":"DubbingSourceSegmentUpdateResponse"},"DubbingSourceTranscriptResponse":{"type":"object","properties":{"language":{"description":"BCP-47 language tag of the source transcript (null if unknown).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"segments":{"description":"The source segments, in playback order.","type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptSegment"},"title":"Segments"},"revision":{"description":"The project's source-transcript revision at read time.","type":"integer","title":"Revision"}},"required":["segments","revision"],"title":"DubbingSourceTranscriptResponse"},"DubbingTargetSegmentUpdateRequest":{"description":"An edit to a target segment's translation.","type":"object","properties":{"translation":{"description":"New translated text, or null to mark the segment for re-translation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Translation"}},"required":["translation"],"title":"DubbingTargetSegmentUpdateRequest"},"DubbingTargetSegmentUpdateResponse":{"description":"The result of a target-translation edit: the updated segment and the new revision.","type":"object","properties":{"segment":{"description":"The target segment in its updated state.","$ref":"#/components/schemas/DubbingTargetTranscriptSegment"},"revision":{"description":"The target's revision after this edit.","type":"integer","title":"Revision"}},"required":["segment","revision"],"title":"DubbingTargetSegmentUpdateResponse"},"DubbingTargetTranscriptResponse":{"type":"object","properties":{"source_language":{"description":"BCP-47 language tag of the source transcript.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"target_language":{"description":"BCP-47 language tag this target is translated into.","type":"string","title":"Target Language"},"segments":{"description":"The target segments, in playback order.","type":"array","items":{"$ref":"#/components/schemas/DubbingTargetTranscriptSegment"},"title":"Segments"},"revision":{"description":"The target's revision at read time.","type":"integer","title":"Revision"}},"required":["target_language","segments","revision"],"title":"DubbingTargetTranscriptResponse"},"DubbingTargetTranscriptSegment":{"description":"One segment of a target transcript: a source segment plus its translation.","type":"object","properties":{"id":{"description":"Stable identifier of the segment (from the source).","type":"string","title":"Id"},"speaker_id":{"description":"Identifier of the segment's speaker.","type":"string","title":"Speaker Id"},"start_s":{"description":"Start time of the segment, in seconds.","type":"number","title":"Start S"},"end_s":{"description":"End time of the segment, in seconds.","type":"number","title":"End S"},"source_text":{"description":"The source-language text of the segment.","type":"string","title":"Source Text"},"translation":{"description":"The translated text, or null if not translated yet (needs translation).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Translation"}},"required":["id","speaker_id","start_s","end_s","source_text"],"title":"DubbingTargetTranscriptSegment"},"DubbingTranscript":{"type":"object","properties":{"language":{"type":"string","title":"Language"},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptUtterance"},"title":"Utterances"}},"required":["language","utterances"],"title":"DubbingTranscript"},"DubbingTranscriptCharacter":{"type":"object","properties":{"text":{"type":"string","default":"","title":"Text"},"start_s":{"type":"number","default":0,"title":"Start S"},"end_s":{"type":"number","default":0,"title":"End S"}},"title":"DubbingTranscriptCharacter"},"DubbingTranscriptResponseModel":{"type":"object","properties":{"language":{"type":"string","title":"Language"},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptUtterance"},"title":"Utterances"}},"required":["language","utterances"],"title":"DubbingTranscriptResponseModel"},"DubbingTranscriptRevisionResponse":{"description":"The new revision after a source edit that returns no segment (e.g. a delete).","type":"object","properties":{"revision":{"description":"The project's source-transcript revision after this edit.","type":"integer","title":"Revision"}},"required":["revision"],"title":"DubbingTranscriptRevisionResponse"},"DubbingTranscriptSegment":{"description":"One segment of a source transcript.","type":"object","properties":{"id":{"description":"Stable identifier of the segment.","type":"string","title":"Id"},"text":{"description":"The transcribed text of the segment.","type":"string","title":"Text"},"speaker_id":{"description":"Identifier of the segment's speaker.","type":"string","title":"Speaker Id"},"start_s":{"description":"Start time of the segment, in seconds.","type":"number","title":"Start S"},"end_s":{"description":"End time of the segment, in seconds.","type":"number","title":"End S"}},"required":["id","text","speaker_id","start_s","end_s"],"title":"DubbingTranscriptSegment"},"DubbingTranscriptUtterance":{"type":"object","properties":{"text":{"type":"string","default":"","title":"Text"},"speaker_id":{"type":"string","default":"unknown","title":"Speaker Id"},"start_s":{"type":"number","default":0,"title":"Start S"},"end_s":{"type":"number","default":0,"title":"End S"},"words":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptWord"},"title":"Words"}},"title":"DubbingTranscriptUtterance"},"DubbingTranscriptWord":{"type":"object","properties":{"text":{"type":"string","default":"","title":"Text"},"word_type":{"type":"string","default":"unknown","title":"Word Type"},"start_s":{"type":"number","default":0,"title":"Start S"},"end_s":{"type":"number","default":0,"title":"End S"},"characters":{"type":"array","items":{"$ref":"#/components/schemas/DubbingTranscriptCharacter"},"title":"Characters"}},"title":"DubbingTranscriptWord"},"DubbingTranscriptsResponseModel":{"type":"object","properties":{"transcript_format":{"type":"string","enum":["srt","webvtt","json"],"title":"Transcript Format"},"srt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Srt"},"webvtt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webvtt"},"json":{"anyOf":[{"$ref":"#/components/schemas/DubbingTranscript"},{"type":"null"}]}},"required":["transcript_format"],"title":"DubbingTranscriptsResponseModel"},"DynamicVariableAssignment":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables.","type":"object","properties":{"source":{"description":"The source to extract the value from. Currently only 'response' is supported.","type":"string","default":"response","const":"response","title":"Source"},"dynamic_variable":{"description":"The name of the dynamic variable to assign the extracted value to","type":"string","title":"Dynamic Variable"},"value_path":{"description":"Dot notation path to extract the value from the source (e.g., 'user.name' or 'data.0.id')","type":"string","title":"Value Path"},"sanitize":{"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.","type":"boolean","default":false,"title":"Sanitize"},"preserve_native_type":{"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.","type":"boolean","default":false,"title":"Preserve Native Type"}},"example":{"dynamic_variable":"user_name","preserve_native_type":false,"sanitize":false,"source":"response","value_path":"user.name"},"required":["dynamic_variable","value_path"],"title":"DynamicVariableAssignment"},"DynamicVariableSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"dynamic_variable","const":"dynamic_variable","title":"Source"},"dynamic_variable":{"description":"The name of the dynamic variable to use","type":"string","minLength":1,"title":"Dynamic Variable"}},"required":["dynamic_variable"],"title":"DynamicVariableSchemaOverride"},"DynamicVariableUpdateCommonModel":{"description":"Tracks a dynamic variable update that occurred during tool execution.","type":"object","properties":{"variable_name":{"type":"string","title":"Variable Name"},"old_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Value"},"new_value":{"type":"string","title":"New Value"},"updated_at":{"type":"number","title":"Updated At"},"tool_name":{"type":"string","title":"Tool Name"},"tool_request_id":{"type":"string","title":"Tool Request Id"}},"required":["variable_name","old_value","new_value","updated_at","tool_name","tool_request_id"],"title":"DynamicVariableUpdateCommonModel"},"DynamicVariablesConfig":{"type":"object","properties":{"dynamic_variable_placeholders":{"description":"A dictionary of dynamic variable placeholders and their values","type":"object","additionalProperties":true,"title":"Dynamic Variable Placeholders"}},"example":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"title":"DynamicVariablesConfig"},"DynamicVariablesConfigWorkflowOverride":{"type":"object","properties":{"dynamic_variable_placeholders":{"description":"A dictionary of dynamic variable placeholders and their values","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dynamic Variable Placeholders"}},"example":{"dynamic_variable_placeholders":{"user_name":"John Doe"}},"title":"DynamicVariablesConfigWorkflowOverride"},"Eagerness":{"type":"string","enum":["low","medium","high"],"title":"Eagerness"},"EditChapterResponseModel":{"type":"object","properties":{"chapter":{"$ref":"#/components/schemas/ChapterWithContentResponseModel"}},"required":["chapter"],"title":"EditChapterResponseModel"},"EditProjectResponseModel":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectResponseModel"}},"required":["project"],"title":"EditProjectResponseModel"},"EditVoiceResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice edit request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"EditVoiceResponseModel"},"EditVoiceSettingsResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice settings edit request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"EditVoiceSettingsResponseModel"},"EmbedVariant":{"type":"string","default":"full","enum":["tiny","compact","full","expandable"],"title":"EmbedVariant"},"EmbeddingModelEnum":{"type":"string","default":"e5_mistral_7b_instruct","enum":["e5_mistral_7b_instruct","multilingual_e5_large_instruct"],"title":"EmbeddingModelEnum"},"EndCallToolConfig":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"end_call","const":"end_call","title":"System Tool Type"}},"title":"EndCallToolConfig"},"EndCallToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"end_call_success","const":"end_call_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"title":"EndCallToolResultModel"},"EndCallTriggerAction":{"type":"object","properties":{"type":{"type":"string","default":"end_call","const":"end_call","title":"Type"}},"title":"EndCallTriggerAction"},"EndProcedureToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"end_procedure","const":"end_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Input"},"title":"Procedures"}},"title":"EndProcedureToolConfig"},"EndProcedureToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"end_procedure","const":"end_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Output"},"title":"Procedures"}},"title":"EndProcedureToolConfig"},"EndProcedureToolErrorStatus":{"type":"string","enum":["not_found","invalid_id"]},"EntityManagementActivityId":{"description":"OCSF Activity IDs for Entity Management [3004] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/entity_management","type":"integer","enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,99],"title":"EntityManagementActivityId"},"EntryBehavior":{"type":"string","default":"auto","enum":["generate_immediately","wait_for_user","auto"],"title":"EntryBehavior"},"EnvironmentAuthConnectionLocator":{"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.","type":"object","properties":{"env_var_label":{"type":"string","title":"Env Var Label"}},"required":["env_var_label"],"title":"EnvironmentAuthConnectionLocator"},"EnvironmentVariableAuthConnectionValue":{"type":"object","properties":{"auth_connection_id":{"type":"string","title":"Auth Connection Id"}},"required":["auth_connection_id"],"title":"EnvironmentVariableAuthConnectionValue"},"EnvironmentVariableAuthConnectionValueRequest":{"type":"object","properties":{"auth_connection_id":{"type":"string","title":"Auth Connection Id"}},"required":["auth_connection_id"],"title":"EnvironmentVariableAuthConnectionValueRequest"},"EnvironmentVariableResponse":{"type":"object","properties":{"label":{"type":"string","title":"Label"},"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"updated_at_unix_secs":{"type":"integer","title":"Updated At Unix Secs"},"created_by_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"},"type":{"type":"string","enum":["string","secret","auth_connection"],"title":"Type"},"id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"values":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableSecretValue"},"type":"object"},{"additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValue"},"type":"object"}],"title":"Values"}},"required":["label","created_at_unix_secs","updated_at_unix_secs","type","id","workspace_id","values"],"title":"EnvironmentVariableResponse"},"EnvironmentVariableSecretValue":{"type":"object","properties":{"secret_id":{"type":"string","title":"Secret Id"}},"required":["secret_id"],"title":"EnvironmentVariableSecretValue"},"EnvironmentVariableSecretValueRequest":{"type":"object","properties":{"secret_id":{"type":"string","title":"Secret Id"}},"required":["secret_id"],"title":"EnvironmentVariableSecretValueRequest"},"EnvironmentVariablesListResponse":{"type":"object","properties":{"environment_variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableResponse"},"title":"Environment Variables"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["environment_variables","has_more"],"title":"EnvironmentVariablesListResponse"},"EvaluationCriteriaSummaryResult":{"type":"object","properties":{"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score"},"max_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Score"}},"required":["result"],"title":"EvaluationCriteriaSummaryResult"},"EvaluationSettings-Input":{"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.","type":"object","properties":{"criteria":{"description":"Individual criteria that the agent should be evaluated against","type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"title":"Criteria"}},"title":"EvaluationSettings"},"EvaluationSettings-Output":{"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.","type":"object","properties":{"criteria":{"description":"Individual criteria that the agent should be evaluated against","type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"title":"Criteria"}},"title":"EvaluationSettings"},"EvaluationSuccessResult":{"type":"string","enum":["success","failure","unknown"],"title":"EvaluationSuccessResult"},"ExactParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"exact","title":"Type"},"expected_value":{"description":"The exact string value that the parameter must match.","type":"string","title":"Expected Value"}},"required":["type","expected_value"],"title":"ExactParameterEvaluationStrategy"},"ExotelApiSubdomain":{"type":"string","enum":["api.in.exotel.com","api.exotel.com"],"title":"ExotelApiSubdomain"},"ExotelOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"callSid":{"description":"Exotel CallSid for the originated call","anyOf":[{"type":"string"},{"type":"null"}],"title":"Callsid"}},"required":["success","message","conversation_id","callSid"],"title":"ExotelOutboundCallResponse"},"ExportOptions":{"discriminator":{"propertyName":"format","mapping":{"docx":"#/components/schemas/DocxExportOptions","html":"#/components/schemas/HtmlExportOptions","pdf":"#/components/schemas/PdfExportOptions","segmented_json":"#/components/schemas/SegmentedJsonExportOptions","srt":"#/components/schemas/SrtExportOptions","txt":"#/components/schemas/TxtExportOptions"}},"oneOf":[{"$ref":"#/components/schemas/SegmentedJsonExportOptions"},{"$ref":"#/components/schemas/DocxExportOptions"},{"$ref":"#/components/schemas/PdfExportOptions"},{"$ref":"#/components/schemas/TxtExportOptions"},{"$ref":"#/components/schemas/HtmlExportOptions"},{"$ref":"#/components/schemas/SrtExportOptions"}],"title":"ExportOptions"},"ExtendedSubscriptionResponseModel":{"type":"object","properties":{"tier":{"description":"The tier of the user's subscription.","type":"string","title":"Tier"},"character_count":{"description":"The number of characters used by the user.","type":"integer","title":"Character Count"},"character_limit":{"description":"The maximum number of characters allowed in the current billing period.","type":"integer","title":"Character Limit"},"max_character_limit_extension":{"description":"Deprecated: use `max_credit_limit_extension`. Maximum number of characters that the character limit can be exceeded by. Managed by the workspace admin.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Character Limit Extension"},"max_credit_limit_extension":{"description":"Maximum number of credits that the credit limit can be exceeded by. Managed by the workspace admin. `\"unlimited\"` means no cap, `0` means usage-based billing is disabled.","anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"}],"title":"Max Credit Limit Extension"},"can_extend_character_limit":{"description":"Whether the workspace is entitled to enter overages (usage-based billing).","type":"boolean","title":"Can Extend Character Limit"},"allowed_to_extend_character_limit":{"description":"Deprecated: use `max_credit_limit_extension != 0`. Whether the user is allowed to extend their character limit.","type":"boolean","title":"Allowed To Extend Character Limit"},"next_character_count_reset_unix":{"description":"The Unix timestamp of the next character count reset.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Character Count Reset Unix"},"voice_slots_used":{"description":"The number of voice slots used by the user.","type":"integer","title":"Voice Slots Used"},"professional_voice_slots_used":{"description":"The number of professional voice slots used. For consolidated billing this is the group-wide count across all workspaces in the group; see professional_voice_slots_used_in_workspace for the current workspace only.","type":"integer","title":"Professional Voice Slots Used"},"professional_voice_slots_used_in_workspace":{"description":"The number of professional voice slots used in the current workspace. For consolidated billing, professional_voice_slots_used counts across all workspaces in the group, while this counts only the current workspace.","type":"integer","title":"Professional Voice Slots Used In Workspace"},"voice_limit":{"description":"The maximum number of voice slots allowed for the user.","type":"integer","title":"Voice Limit"},"max_voice_add_edits":{"description":"The maximum number of voice add/edits allowed for the user.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Voice Add Edits"},"voice_add_edit_counter":{"description":"The number of voice add/edits used by the user.","type":"integer","title":"Voice Add Edit Counter"},"professional_voice_limit":{"description":"The maximum number of professional voices allowed for the user.","type":"integer","title":"Professional Voice Limit"},"can_extend_voice_limit":{"description":"Whether the user can extend their voice limit.","type":"boolean","title":"Can Extend Voice Limit"},"can_use_instant_voice_cloning":{"description":"Whether the user can use instant voice cloning.","type":"boolean","title":"Can Use Instant Voice Cloning"},"can_use_professional_voice_cloning":{"description":"Whether the user can use professional voice cloning.","type":"boolean","title":"Can Use Professional Voice Cloning"},"currency":{"description":"The currency of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}]},"current_overage":{"description":"The current usage-based overage cost.","$ref":"#/components/schemas/Price"},"status":{"description":"The status of the user's subscription.","$ref":"#/components/schemas/SubscriptionStatusType"},"billing_period":{"description":"The billing period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/BillingPeriod"},{"type":"null"}]},"character_refresh_period":{"description":"The character refresh period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/CharacterRefreshPeriod"},{"type":"null"}]},"next_invoice":{"description":"The next invoice for the user.","anyOf":[{"$ref":"#/components/schemas/InvoiceResponseModel"},{"type":"null"}]},"open_invoices":{"description":"The open invoices for the user.","type":"array","items":{"$ref":"#/components/schemas/InvoiceResponseModel"},"title":"Open Invoices"},"has_open_invoices":{"description":"Whether the user has open invoices.","type":"boolean","title":"Has Open Invoices"},"pending_change":{"description":"The pending change for the user.","anyOf":[{"$ref":"#/components/schemas/PendingSubscriptionSwitchResponseModel"},{"$ref":"#/components/schemas/PendingCancellationResponseModel"},{"type":"null"}],"title":"Pending Change"},"has_used_starter_coupon_on_account":{"description":"True if any workspace owned by this user's auth account has redeemed the starter first-month discount coupon.","type":"boolean","default":false,"title":"Has Used Starter Coupon On Account"},"has_used_creator_coupon_on_account":{"description":"True if any workspace owned by this user's auth account has redeemed the creator first-month discount coupon.","type":"boolean","default":false,"title":"Has Used Creator Coupon On Account"}},"example":{"allowed_to_extend_character_limit":true,"billing_period":"monthly_period","can_extend_character_limit":true,"can_extend_voice_limit":true,"can_use_instant_voice_cloning":true,"can_use_professional_voice_cloning":true,"character_count":1000,"character_limit":10000,"character_refresh_period":"monthly_period","currency":"usd","current_overage":{"amount":"0","currency":"usd"},"has_open_invoices":true,"has_used_creator_coupon_on_account":false,"has_used_starter_coupon_on_account":false,"max_character_limit_extension":10000,"max_credit_limit_extension":10000,"next_character_count_reset_unix":1738356858,"next_invoice":{"amount_due_cents":1000,"discounts":[{"discount_percent_off":20}],"next_payment_attempt_unix":1738356858,"payment_intent_status":"processing","payment_intent_statusses":["processing","succeeded"],"subtotal_cents":900,"tax_cents":100},"open_invoices":[{"amount_due_cents":1000,"discounts":[{"discount_percent_off":20}],"next_payment_attempt_unix":1738356858,"payment_intent_status":"processing","payment_intent_statusses":["processing","succeeded"],"subtotal_cents":900,"tax_cents":100}],"professional_voice_limit":1,"professional_voice_slots_used":0,"professional_voice_slots_used_in_workspace":0,"status":"active","tier":"starter","voice_add_edit_counter":0,"voice_limit":10,"voice_slots_used":1},"required":["tier","character_count","character_limit","max_character_limit_extension","max_credit_limit_extension","can_extend_character_limit","allowed_to_extend_character_limit","voice_slots_used","professional_voice_slots_used","professional_voice_slots_used_in_workspace","voice_limit","voice_add_edit_counter","professional_voice_limit","can_extend_voice_limit","can_use_instant_voice_cloning","can_use_professional_voice_cloning","current_overage","status","open_invoices","has_open_invoices"],"title":"ExtendedSubscriptionResponseModel","x-fern-type-name":"Subscription"},"ExternalFileSyncInfo":{"description":"Tracks the link back to the original file in an external source.","type":"object","properties":{"type":{"description":"Provider identifier","$ref":"#/components/schemas/ExternalSyncProvider"},"source_entity_id":{"description":"Entity ID in the external system","type":"string","title":"Source Entity Id"},"integration_connection_id":{"description":"Integration connection instance ID","type":"string","title":"Integration Connection Id"},"source_parent_entity_id":{"description":"Folder ID in the external system this file was synced from","type":"string","title":"Source Parent Entity Id"},"source_mime_type":{"description":"Original MIME type in the external system","type":"string","title":"Source Mime Type"},"source_modified_time":{"description":"Last modified time from the external system","type":"string","format":"date-time","title":"Source Modified Time"},"root_folder_id":{"description":"KB folder ID of the sync root, used to query all entities under a sync tree","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"}},"required":["type","source_entity_id","integration_connection_id","source_parent_entity_id","source_mime_type","source_modified_time"],"title":"ExternalFileSyncInfo"},"ExternalFolderSyncInfo":{"description":"Metadata for a KB folder that mirrors an external source folder.","type":"object","properties":{"type":{"description":"Provider identifier","$ref":"#/components/schemas/ExternalSyncProvider"},"source_entity_id":{"description":"Entity ID in the external system","type":"string","title":"Source Entity Id"},"integration_connection_id":{"description":"Integration connection instance ID","type":"string","title":"Integration Connection Id"},"root_folder_id":{"description":"KB folder ID of the sync root. None means this folder is the root.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"},"sync_cursor":{"description":"Opaque cursor for incremental sync, interpreted by the provider","anyOf":[{"type":"string"},{"type":"null"}],"title":"Sync Cursor"},"last_sync_at":{"description":"Unix timestamp of last completed sync","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync At"}},"required":["type","source_entity_id","integration_connection_id"],"title":"ExternalFolderSyncInfo"},"ExternalSyncJobTrigger":{"type":"string","enum":["on_demand","on_connect","auto"],"title":"ExternalSyncJobTrigger"},"ExternalSyncJobType":{"type":"string","enum":["full","incremental"],"title":"ExternalSyncJobType"},"ExternalSyncProvider":{"type":"string","enum":["google_drive"],"title":"ExternalSyncProvider"},"FeatureStatusCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"used":{"type":"boolean","default":false,"title":"Used"}},"title":"FeatureStatusCommonModel"},"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,"title":"Pii Zrm Workspace"},"pii_zrm_agent":{"type":"boolean","default":false,"title":"Pii Zrm Agent"},"tool_dynamic_variable_updates":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"is_livekit":{"type":"boolean","default":false,"title":"Is Livekit"},"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"}},"title":"FeaturesUsageCommonModel"},"FileInputConfig":{"type":"object","properties":{"enabled":{"description":"When enabled, users may attach images or PDFs in chat when the LLM supports multimodal input.","type":"boolean","default":true,"title":"Enabled"},"max_files_per_conversation":{"description":"Maximum number of files that can be uploaded per conversation.","type":"integer","default":10,"maximum":10,"minimum":1,"title":"Max Files Per Conversation"}},"title":"FileInputConfig"},"FileInputConfigWorkflowOverride":{"type":"object","properties":{"enabled":{"description":"When enabled, users may attach images or PDFs in chat when the LLM supports multimodal input.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"max_files_per_conversation":{"description":"Maximum number of files that can be uploaded per conversation.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Files Per Conversation"}},"title":"FileInputConfigWorkflowOverride"},"FileRefreshStatus":{"description":"In-flight/last refresh state for an externally-synced KB file.","type":"object","properties":{"status":{"default":"queued","$ref":"#/components/schemas/CrawlStatus"},"enqueued_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Enqueued At"},"started_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"last_synced_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Synced At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"title":"FileRefreshStatus"},"FineTuningResponseModel":{"type":"object","properties":{"is_allowed_to_fine_tune":{"description":"Whether the user is allowed to fine-tune the voice.","type":"boolean","title":"Is Allowed To Fine Tune"},"state":{"description":"The state of the fine-tuning process for each model.","type":"object","additionalProperties":{"type":"string","enum":["not_started","queued","fine_tuning","fine_tuned","failed","delayed"]},"title":"State"},"verification_failures":{"description":"List of verification failures in the fine-tuning process.","type":"array","items":{"type":"string"},"title":"Verification Failures"},"verification_attempts_count":{"description":"The number of verification attempts in the fine-tuning process.","type":"integer","title":"Verification Attempts Count"},"manual_verification_requested":{"description":"Whether a manual verification was requested for the fine-tuning process.","type":"boolean","title":"Manual Verification Requested"},"language":{"description":"The language of the fine-tuning process.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"progress":{"description":"The progress of the fine-tuning process.","anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Progress"},"message":{"description":"The message of the fine-tuning process.","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Message"},"dataset_duration_seconds":{"description":"The duration of the dataset in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Dataset Duration Seconds"},"verification_attempts":{"description":"The number of verification attempts.","anyOf":[{"items":{"$ref":"#/components/schemas/VerificationAttemptResponseModel"},"type":"array"},{"type":"null"}],"title":"Verification Attempts"},"slice_ids":{"description":"List of slice IDs.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Slice Ids"},"manual_verification":{"description":"The manual verification of the fine-tuning process.","anyOf":[{"$ref":"#/components/schemas/ManualVerificationResponseModel"},{"type":"null"}]},"max_verification_attempts":{"description":"The maximum number of verification attempts.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Verification Attempts"},"next_max_verification_attempts_reset_unix_ms":{"description":"The next maximum verification attempts reset time in Unix milliseconds.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Max Verification Attempts Reset Unix Ms"},"finetuning_state":{"x-fern-type-name":"FinetuningState"}},"example":{"is_allowed_to_fine_tune":true,"manual_verification_requested":false,"state":{"eleven_multilingual_v2":"fine_tuned"},"verification_attempts_count":2,"verification_failures":[]},"required":[],"title":"FineTuningResponseModel","x-fern-type-name":"FineTuningResponse"},"FinetuneCreatedBy":{"type":"string","enum":["self","workspace","elevenlabs"],"title":"FinetuneCreatedBy"},"FinetuneVisibility":{"type":"string","enum":["private","workspace","public"],"title":"FinetuneVisibility"},"FocusGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"}},"title":"FocusGuardrail"},"ForcedAlignmentCharacterResponseModel":{"description":"Model representing a single character with its timing information from the aligner.","type":"object","properties":{"text":{"description":"The character that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the character in seconds.","type":"number","title":"Start"},"end":{"description":"The end time of the character in seconds.","type":"number","title":"End"}},"example":{"end":0.02,"start":0,"text":"H"},"required":["text","start","end"],"title":"ForcedAlignmentCharacterResponseModel"},"ForcedAlignmentResponseModel":{"description":"Model representing the response from the aligner service.","type":"object","properties":{"characters":{"description":"List of characters with their timing information.","type":"array","items":{"$ref":"#/components/schemas/ForcedAlignmentCharacterResponseModel"},"title":"Characters"},"words":{"description":"List of words with their timing information.","type":"array","items":{"$ref":"#/components/schemas/ForcedAlignmentWordResponseModel"},"title":"Words"},"loss":{"description":"The average alignment loss/confidence score for the entire transcript, calculated from all characters.","type":"number","title":"Loss"}},"required":["characters","words","loss"],"title":"ForcedAlignmentResponseModel"},"ForcedAlignmentWordResponseModel":{"description":"Model representing a single word with its timing information from the aligner.","type":"object","properties":{"text":{"description":"The word that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the word in seconds.","type":"number","title":"Start"},"end":{"description":"The end time of the word in seconds.","type":"number","title":"End"},"loss":{"description":"The average alignment loss/confidence score for this word, calculated from its constituent characters.","type":"number","title":"Loss"}},"example":{"end":1.02,"loss":0.12,"start":0,"text":"Hello"},"required":["text","start","end","loss"],"title":"ForcedAlignmentWordResponseModel"},"FrustratedConversationRef":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"start_time_unix_secs":{"type":"integer","title":"Start Time Unix Secs"},"overall_label":{"type":"string","enum":["positive","neutral","negative"],"title":"Overall Label"},"overall_sentiment_score":{"type":"number","title":"Overall Sentiment Score"},"overall_frustration_score":{"type":"number","title":"Overall Frustration Score"}},"required":["conversation_id","agent_id","start_time_unix_secs","overall_label","overall_sentiment_score","overall_frustration_score"],"title":"FrustratedConversationRef"},"GenerationChunk-Input":{"type":"object","properties":{"text":{"description":"The text config to be generated for this chunk. Can contain section name in square brackets, e.g. [Verse 1], lyrics lines, and inline directions in curly braces, e.g. {scratching}.","type":"string","maxLength":6000,"title":"Text"},"duration_ms":{"description":"The duration of the chunk in milliseconds. Must be between 3000ms and 120000ms.","type":"integer","maximum":120000,"minimum":3000,"title":"Duration Ms"},"positive_styles":{"description":"The styles and musical directions that should be present in this chunk. Use English language for best results. The styles for the first chunk are the most important as they set the overall tone and genre. Styles for subsequent chunks can be used to add nuance, progression, emphasis, or change the direction of the song. Aim to have at least 6-7 styles in early chunks until the direction is established. Generic styles like 'great production quality' are good default styles to append to the list.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Styles"},"negative_styles":{"description":"The styles and musical directions that should not be present in this chunk. Use English language for best results. Leaving empty is a good default, only use this field if you want to explicitly avoid a particular style or direction.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Styles"},"context_adherence":{"description":"How much the model adheres to the context of its surrounding chunks. Low adherence means the model can deviate from the context and be more creative. High adherence means the model will be more consistent with the context.","type":"string","default":"high","enum":["low","medium","high"],"title":"Context Adherence"},"conditioning_ref":{"description":"The audio reference to condition the generation on. The first chunk is the most important as it will influence the generation of all subsequent chunks. Thus, if you want to apply conditioning to the entire song, start conditioning from the first chunk.","anyOf":[{"$ref":"#/components/schemas/AudioRefChunk"},{"type":"null"}]},"condition_strength":{"description":"How strongly the model adheres to the conditioning reference. Low strength means the model will be more creative and deviate from the reference. High strength means the model will be more consistent with the reference.","anyOf":[{"type":"string","enum":["low","medium","high","xhigh"]},{"type":"null"}],"title":"Condition Strength"}},"required":["text","duration_ms","positive_styles"],"title":"GenerationChunk"},"GenerationChunk-Output":{"type":"object","properties":{"text":{"description":"The text config to be generated for this chunk. Can contain section name in square brackets, e.g. [Verse 1], lyrics lines, and inline directions in curly braces, e.g. {scratching}.","type":"string","maxLength":6000,"title":"Text"},"duration_ms":{"description":"The duration of the chunk in milliseconds. Must be between 3000ms and 120000ms.","type":"integer","maximum":120000,"minimum":3000,"title":"Duration Ms"},"positive_styles":{"description":"The styles and musical directions that should be present in this chunk. Use English language for best results. The styles for the first chunk are the most important as they set the overall tone and genre. Styles for subsequent chunks can be used to add nuance, progression, emphasis, or change the direction of the song. Aim to have at least 6-7 styles in early chunks until the direction is established. Generic styles like 'great production quality' are good default styles to append to the list.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Styles"},"negative_styles":{"description":"The styles and musical directions that should not be present in this chunk. Use English language for best results. Leaving empty is a good default, only use this field if you want to explicitly avoid a particular style or direction.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Styles"},"context_adherence":{"description":"How much the model adheres to the context of its surrounding chunks. Low adherence means the model can deviate from the context and be more creative. High adherence means the model will be more consistent with the context.","type":"string","default":"high","enum":["low","medium","high"],"title":"Context Adherence"},"conditioning_ref":{"description":"The audio reference to condition the generation on. The first chunk is the most important as it will influence the generation of all subsequent chunks. Thus, if you want to apply conditioning to the entire song, start conditioning from the first chunk.","anyOf":[{"$ref":"#/components/schemas/AudioRefChunk"},{"type":"null"}]},"condition_strength":{"description":"How strongly the model adheres to the conditioning reference. Low strength means the model will be more creative and deviate from the reference. High strength means the model will be more consistent with the reference.","anyOf":[{"type":"string","enum":["low","medium","high","xhigh"]},{"type":"null"}],"title":"Condition Strength"}},"required":["text","duration_ms","positive_styles"],"title":"GenerationChunk"},"GenerationSourceContext":{"type":"object","properties":{"source_type":{"type":"string","default":"generation","const":"generation","title":"Source Type"},"generation_id":{"type":"string","title":"Generation Id"},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"},"model_id":{"type":"string","title":"Model Id"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider"},"generation_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generation Session Id"},"session_iteration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Iteration Id"},"model_parameters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Model Parameters"},"extend_video":{"anyOf":[{"$ref":"#/components/schemas/ReferenceVideo"},{"type":"null"}]}},"required":["generation_id","model_id"],"title":"GenerationSourceContext"},"GenesysRegion":{"type":"string","enum":["us_east_1","eu_west_1","ap_southeast_2","ap_northeast_1","eu_central_1","us_west_2","ca_central_1","ap_northeast_2","eu_west_2","ap_south_1","us_east_2","sa_east_1","me_central_1","ap_northeast_3","eu_central_2","mx_central_1","ap_southeast_1"],"title":"GenesysRegion"},"GetAgentEmbedResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"widget_config":{"$ref":"#/components/schemas/WidgetConfigResponseModel"}},"required":["agent_id","widget_config"],"title":"GetAgentEmbedResponseModel"},"GetAgentKnowledgebaseSizeResponseModel":{"type":"object","properties":{"number_of_pages":{"type":"number","title":"Number Of Pages"}},"required":["number_of_pages"],"title":"GetAgentKnowledgebaseSizeResponseModel"},"GetAgentLinkResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"token":{"description":"The token data for the agent","anyOf":[{"$ref":"#/components/schemas/ConversationTokenResponseModel"},{"type":"null"}]}},"example":{"agent_id":"J3Pbu5gP6NNKBscdCdwB"},"required":["agent_id"],"title":"GetAgentLinkResponseModel"},"GetAgentResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"name":{"description":"The name of the agent","type":"string","title":"Name"},"conversation_config":{"description":"The conversation configuration of the agent","$ref":"#/components/schemas/ConversationalConfigAPIModel-Output"},"metadata":{"description":"The metadata of the agent","$ref":"#/components/schemas/AgentMetadataResponseModel"},"platform_settings":{"description":"The platform settings of the agent","$ref":"#/components/schemas/AgentPlatformSettingsResponseModel"},"phone_numbers":{"description":"The phone numbers of the agent","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"discriminator":{"propertyName":"provider","mapping":{"exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel","twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel"}}},"title":"Phone Numbers"},"whatsapp_accounts":{"description":"WhatsApp accounts assigned to the agent","type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"title":"Whatsapp Accounts"},"workflow":{"description":"The workflow of the agent","$ref":"#/components/schemas/AgentWorkflowResponseModel"},"access_info":{"description":"The access information of the agent for the user","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"tags":{"description":"Agent tags used to categorize the agent","type":"array","items":{"type":"string"},"title":"Tags"},"version_id":{"description":"The ID of the version the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"branch_id":{"description":"The ID of the branch the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"main_branch_id":{"description":"The ID of the main branch for this agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Branch Id"}},"example":{"agent_id":"agent_7101k5zvyjhmfg983brhmhkd98n6","name":"My Agent","workflow":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition","type":"llm"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{"type":"unconditional"},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false,"type":"result"},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true,"type":"result"},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{"type":"unconditional"},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition","type":"llm"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition","type":"llm"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer","type":"dynamic_variable"},{"prompt":"Phone condition","type":"llm","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode","type":"dynamic_variable"},"right":{"type":"string_literal","value":"dev"},"type":"eq_operator"}],"type":"or_operator"},"type":"expression"},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":["entry_to_tool_a"],"entry_behavior":"auto","label":"Entry","position":{"x":0,"y":0},"type":"override_agent"},"failure_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Failure","position":{"x":0,"y":0},"type":"override_agent"},"start_node":{"edge_order":["start_to_entry"],"position":{"x":0,"y":0},"type":"start"},"success_conversation":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Success A","position":{"x":0,"y":0},"type":"override_agent"},"success_end":{"edge_order":[],"position":{"x":0,"y":0},"return_when_nested":true,"type":"end"},"success_phone":{"custom_sip_headers":[],"edge_order":[],"position":{"x":0,"y":0},"require_acceptance":false,"transfer_destination":{"phone_number":"+1234567890","type":"phone"},"transfer_type":"conference","type":"phone_number"},"success_transfer":{"agent_id":"success_transfer_agent","delay_ms":0,"edge_order":[],"enable_nesting":false,"enable_transferred_agent_first_message":false,"position":{"x":0,"y":0},"preserve_client_tts_overrides":false,"type":"standalone_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}],"type":"tool"},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"}],"type":"tool"}},"prevent_subagent_loops":false}},"required":["agent_id","name","conversation_config","metadata"],"title":"GetAgentResponseModel"},"GetAgentTestFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"folder_path":{"description":"The path from the root folder to the current folder.","type":"array","items":{"$ref":"#/components/schemas/AgentTestFolderPathSegmentResponseModel"},"title":"Folder Path"},"children_count":{"description":"The number of direct children (tests and subfolders) in this folder","type":"integer","default":0,"title":"Children Count"}},"required":["id","name"],"title":"GetAgentTestFolderResponseModel"},"GetAgentTopicsResponseModel":{"type":"object","properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/AgentTopicResponseModel"},"title":"Topics"},"window_start_unix_secs":{"type":"integer","title":"Window Start Unix Secs"},"window_end_unix_secs":{"type":"integer","title":"Window End Unix Secs"}},"required":["topics","window_start_unix_secs","window_end_unix_secs"],"title":"GetAgentTopicsResponseModel"},"GetAgentsPageResponseModel":{"type":"object","properties":{"agents":{"description":"A list of agents and their metadata","type":"array","items":{"$ref":"#/components/schemas/AgentSummaryResponseModel"},"title":"Agents"},"next_cursor":{"description":"The next cursor to paginate through the agents","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more agents to paginate through","type":"boolean","title":"Has More"}},"example":{"agents":[{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"agent_id":"J3Pbu5gP6NNKBscdCdwB","archived":false,"created_at_unix_secs":1716153600,"name":"My Agent","tags":["Customer Support","Technical Help","Eleven"]}],"has_more":false,"next_cursor":"123"},"required":["agents","has_more"],"title":"GetAgentsPageResponseModel"},"GetAnalyticsSummaryParams":{"description":"Get a summary of key business analytics for a time period.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_analytics_summary","const":"get_analytics_summary","title":"Smb Tool Type"}},"title":"GetAnalyticsSummaryParams"},"GetAppointmentByConfirmationNumberParams":{"description":"Look up an appointment by the booking confirmation number the caller quotes.\n\nThe confirmation number is the 8-character code shown on the booking\nconfirmation page (e.g. ``#01ABCDEF``). Callers may read it back with or\nwithout the leading ``#`` and with varied spacing; the tool normalizes\nthe input and does a prefix match on the stored calendar item id.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_appointment_by_confirmation_number","const":"get_appointment_by_confirmation_number","title":"Smb Tool Type"}},"title":"GetAppointmentByConfirmationNumberParams"},"GetAudioIsolationHistoryResponseModel":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AudioIsolationHistoryItemResponseModel"},"title":"Items"},"has_more":{"type":"boolean","title":"Has More"}},"required":["items","has_more"],"title":"GetAudioIsolationHistoryResponseModel"},"GetAudioNativeProjectSettingsResponseModel":{"type":"object","properties":{"enabled":{"description":"Whether the project is enabled.","type":"boolean","title":"Enabled"},"snapshot_id":{"description":"The ID of the latest snapshot of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Id"},"settings":{"description":"The settings of the project.","anyOf":[{"$ref":"#/components/schemas/AudioNativeProjectSettingsResponseModel"},{"type":"null"}]}},"example":{"enabled":true,"settings":{"audio_path":"audio/my_project.mp3","audio_url":"https://example.com/audio/my_project.mp3","author":"John Doe","background_color":"#FFFFFF","image":"https://example.com/image.jpg","sessionization":1,"small":false,"status":"ready","text_color":"#000000","title":"My Project"},"snapshot_id":"JBFqnCBsd6RMkjVDRZzb"},"required":["enabled"],"title":"GetAudioNativeProjectSettingsResponseModel"},"GetBookingPageSettingsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_booking_page_settings","const":"get_booking_page_settings","title":"Smb Tool Type"}},"title":"GetBookingPageSettingsParams"},"GetBookingSlugStatusParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_booking_slug_status","const":"get_booking_slug_status","title":"Smb Tool Type"}},"title":"GetBookingSlugStatusParams"},"GetChaptersResponseModel":{"type":"object","properties":{"chapters":{"type":"array","items":{"$ref":"#/components/schemas/ChapterResponseModel"},"title":"Chapters"}},"required":["chapters"],"title":"GetChaptersResponseModel","x-fern-type-name":"GetChaptersResponse"},"GetClientAppointmentsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_client_appointments","const":"get_client_appointments","title":"Smb Tool Type"},"include_cancelled":{"type":"boolean","default":false,"title":"Include Cancelled"}},"title":"GetClientAppointmentsParams"},"GetClientByPhoneParams":{"description":"Look up a client by their exact phone number.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_client_by_phone","const":"get_client_by_phone","title":"Smb Tool Type"}},"title":"GetClientByPhoneParams"},"GetConvAIDashboardSettingsResponseModel":{"type":"object","properties":{"charts":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DashboardCallSuccessChartModel"},{"$ref":"#/components/schemas/DashboardCriteriaChartModel"},{"$ref":"#/components/schemas/DashboardDataCollectionChartModel"}],"discriminator":{"propertyName":"type","mapping":{"call_success":"#/components/schemas/DashboardCallSuccessChartModel","criteria":"#/components/schemas/DashboardCriteriaChartModel","data_collection":"#/components/schemas/DashboardDataCollectionChartModel"}}},"maxItems":4,"title":"Charts"}},"title":"GetConvAIDashboardSettingsResponseModel"},"GetConvAISettingsResponseModel":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"},"can_use_mcp_servers":{"description":"Whether the workspace can use MCP servers","type":"boolean","default":false,"title":"Can Use Mcp Servers"},"rag_retention_period_days":{"type":"integer","default":10,"exclusiveMinimum":0,"maximum":30,"title":"Rag Retention Period Days"},"conversation_embedding_retention_days":{"description":"Days to retain conversation embeddings. None means use the system default (30 days).","anyOf":[{"type":"integer","maximum":365,"exclusiveMinimum":0},{"type":"null"}],"title":"Conversation Embedding Retention Days"},"default_livekit_stack":{"default":"standard","$ref":"#/components/schemas/LivekitStackType"}},"title":"GetConvAISettingsResponseModel"},"GetConversationResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"conversation_product":{"type":"string","default":"agent","title":"Conversation Product"},"status":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"Status"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"version_id":{"description":"The ID of the agent version used for this conversation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"metadata":{"$ref":"#/components/schemas/ConversationHistoryMetadataCommonModel"},"analysis":{"anyOf":[{"$ref":"#/components/schemas/ConversationHistoryAnalysisCommonModel"},{"type":"null"}]},"visited_agents":{"type":"array","items":{"$ref":"#/components/schemas/VisitedAgentRef"},"title":"Visited Agents"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Output"},"environment":{"type":"string","default":"production","title":"Environment"},"conversation_id":{"type":"string","title":"Conversation Id"},"has_audio":{"type":"boolean","title":"Has Audio"},"has_user_audio":{"type":"boolean","title":"Has User Audio"},"has_response_audio":{"type":"boolean","title":"Has Response Audio"},"has_auxiliary_audio":{"type":"boolean","title":"Has Auxiliary Audio"},"transcript":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModel"},"title":"Transcript"},"tag_ids":{"description":"Conversation tag ids assigned to this conversation.","type":"array","items":{"type":"string"},"title":"Tag Ids"},"otlp_traces":{"description":"OpenTelemetry trace payload when the request uses format=opentelemetry; otherwise omitted.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}]}},"example":{"agent_id":"agent_3701k3ttaq12ewp8b7qv5rfyszkz","agent_name":"My agent","conversation_id":"conv_7401k5m9x2p8ec3rqv6dtnhb0fzw","environment":"production","has_audio":true,"has_auxiliary_audio":true,"has_response_audio":true,"has_user_audio":true,"metadata":{"call_duration_secs":10,"start_time_unix_secs":1714423232},"status":"processing","tag_ids":[],"transcript":[{"message":"Hello, how are you?","role":"user","time_in_call_secs":10}],"version_id":"agtvrsn_5xM3yVvZQKV0EfqQpLr2"},"required":["agent_id","status","metadata","conversation_id","has_audio","has_user_audio","has_response_audio","has_auxiliary_audio","transcript"],"title":"GetConversationResponseModel"},"GetConversationTagsPageResponseModel":{"type":"object","properties":{"conversation_tags":{"type":"array","items":{"$ref":"#/components/schemas/ConversationTagResponseModel"},"title":"Conversation Tags"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["conversation_tags","has_more"],"title":"GetConversationTagsPageResponseModel"},"GetConversationUsersPageResponseModel":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/ConversationUserResponseModel"},"title":"Users"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["users","has_more"],"title":"GetConversationUsersPageResponseModel"},"GetConversationsPageResponseModel":{"type":"object","properties":{"conversations":{"type":"array","items":{"$ref":"#/components/schemas/ConversationSummaryResponseModel"},"title":"Conversations"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["conversations","has_more"],"title":"GetConversationsPageResponseModel"},"GetCrawlJobResponseModel":{"type":"object","properties":{"type":{"default":"discovery","$ref":"#/components/schemas/CrawlType"},"seed_url":{"type":"string","title":"Seed Url"},"pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pattern"},"max_depth":{"type":"integer","title":"Max Depth"},"max_pages":{"type":"integer","title":"Max Pages"},"status":{"default":"queued","$ref":"#/components/schemas/CrawlStatus"},"pages_identified":{"type":"integer","default":0,"title":"Pages Identified"},"pages_scraped":{"type":"integer","default":0,"title":"Pages Scraped"},"pages_skipped":{"type":"integer","default":0,"title":"Pages Skipped"},"pages_failed":{"type":"integer","default":0,"title":"Pages Failed"},"root_folder_id":{"type":"string","title":"Root Folder Id"},"updated_at":{"type":"integer","title":"Updated At"},"id":{"type":"string","title":"Id"},"created_at":{"type":"integer","title":"Created At"}},"required":["seed_url","max_depth","max_pages","root_folder_id","updated_at","id","created_at"],"title":"GetCrawlJobResponseModel"},"GetKnowledgeBaseDependentAgentsResponseModel":{"type":"object","properties":{"agents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Agents"},"branches":{"type":"array","items":{"$ref":"#/components/schemas/DependentBranchInfo"},"title":"Branches"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["agents","has_more"],"title":"GetKnowledgeBaseDependentAgentsResponseModel"},"GetKnowledgeBaseFileResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"file","title":"Type"},"extracted_inner_html":{"type":"string","title":"Extracted Inner Html"},"content_format":{"default":"html","$ref":"#/components/schemas/ContentFormat"},"filename":{"type":"string","title":"Filename"},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFileSyncInfo"},{"type":"null"}]},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"refresh_status":{"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.","anyOf":[{"$ref":"#/components/schemas/FileRefreshStatus"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"}},"required":["id","name","metadata","supported_usages","access_info","type","extracted_inner_html","filename"],"title":"GetKnowledgeBaseFileResponseModel"},"GetKnowledgeBaseFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"folder","title":"Type"},"children_count":{"type":"integer","title":"Children Count"},"document_count":{"description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;","type":"integer","title":"Document Count"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"},"active_sync_job":{"description":"Most recent (in-flight or terminal) external sync job for this folder, if any. Used by clients to render sync progress.","anyOf":[{"$ref":"#/components/schemas/KbExternalSyncJob"},{"type":"null"}]}},"required":["id","name","metadata","supported_usages","access_info","type","children_count","document_count"],"title":"GetKnowledgeBaseFolderResponseModel"},"GetKnowledgeBaseListResponseModel":{"type":"object","properties":{"documents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel"}],"discriminator":{"propertyName":"type","mapping":{"file":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel","folder":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel","text":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel","url":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"}}},"title":"Documents"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["documents","has_more"],"title":"GetKnowledgeBaseListResponseModel"},"GetKnowledgeBaseSummaryFileResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"file","title":"Type"},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFileSyncInfo"},{"type":"null"}]},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"refresh_status":{"anyOf":[{"$ref":"#/components/schemas/FileRefreshStatus"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type"],"title":"GetKnowledgeBaseSummaryFileResponseModel"},"GetKnowledgeBaseSummaryFolderResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"folder","title":"Type"},"children_count":{"type":"integer","title":"Children Count"},"document_count":{"description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;","type":"integer","title":"Document Count"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]},"external_sync_info":{"anyOf":[{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},{"type":"null"}]},"is_frozen":{"type":"boolean","default":false,"title":"Is Frozen"}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type","children_count","document_count"],"title":"GetKnowledgeBaseSummaryFolderResponseModel"},"GetKnowledgeBaseSummaryTextResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"text","title":"Type"}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type"],"title":"GetKnowledgeBaseSummaryTextResponseModel"},"GetKnowledgeBaseSummaryURLResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"title":"Folder Path"},"dependent_agents":{"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"deprecated":true,"title":"Dependent Agents"},"type":{"type":"string","const":"url","title":"Type"},"url":{"type":"string","title":"Url"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]}},"required":["id","name","metadata","supported_usages","access_info","dependent_agents","type","url"],"title":"GetKnowledgeBaseSummaryURLResponseModel"},"GetKnowledgeBaseTextResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"text","title":"Type"},"extracted_inner_html":{"type":"string","title":"Extracted Inner Html"},"content_format":{"default":"html","$ref":"#/components/schemas/ContentFormat"}},"required":["id","name","metadata","supported_usages","access_info","type","extracted_inner_html"],"title":"GetKnowledgeBaseTextResponseModel"},"GetKnowledgeBaseURLResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"},"title":"Supported Usages"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"description":"The ID of the parent folder, or null if the document is at the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments leading to this entity, from root to parent folder.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"title":"Folder Path"},"type":{"type":"string","const":"url","title":"Type"},"url":{"type":"string","title":"Url"},"extracted_inner_html":{"type":"string","title":"Extracted Inner Html"},"content_format":{"default":"html","$ref":"#/components/schemas/ContentFormat"},"auto_sync_info":{"anyOf":[{"$ref":"#/components/schemas/AutoSyncInfo"},{"type":"null"}]}},"required":["id","name","metadata","supported_usages","access_info","type","url","extracted_inner_html"],"title":"GetKnowledgeBaseURLResponseModel"},"GetLibraryVoicesResponseModel":{"type":"object","properties":{"voices":{"description":"The list of shared voices","type":"array","items":{"$ref":"#/components/schemas/LibraryVoiceResponseModel"},"title":"Voices"},"has_more":{"description":"Whether there are more shared voices in subsequent pages.","type":"boolean","title":"Has More"},"total_count":{"description":"The total number of shared voices matching the query.","type":"integer","default":0,"title":"Total Count"},"last_sort_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sort Id"}},"example":{"has_more":false,"total_count":0,"voices":[{"accent":"american","age":"young","category":"professional","cloned_by_count":11,"date_unix":1714423232,"description":"Perfectly calm, neutral and strong voice. Great for a young female protagonist.","descriptive":"calm","featured":false,"free_users_allowed":true,"gender":"Female","language":"en","live_moderation_enabled":false,"name":"Alita","play_api_usage_character_count_1y":12852,"preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3","public_owner_id":"63e84100a6bf7874ba37a1bab9a31828a379ec94b891b401653b655c5110880f","rate":1,"usage_character_count_1y":12852,"usage_character_count_7d":12852,"use_case":"characters_animation","verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3"}],"voice_id":"sB1b5zUrxQVAFl2PhZFp"}]},"required":["voices","has_more"],"title":"GetLibraryVoicesResponseModel","x-fern-type-name":"GetLibraryVoicesResponse"},"GetLiveCountResponse":{"type":"object","properties":{"count":{"description":"The number of active ongoing conversations.","type":"integer","title":"Count"}},"examples":[{"count":42}],"required":["count"],"title":"GetLiveCountResponse"},"GetOrCreateRAGIndexRequestModel":{"type":"object","properties":{"document_id":{"description":"ID of the knowledgebase document for which to retrieve the index","type":"string","title":"Document Id"},"create_if_missing":{"description":"Whether to create the RAG index if it does not exist","type":"boolean","title":"Create If Missing"},"model":{"description":"Embedding model to use for the RAG index","$ref":"#/components/schemas/EmbeddingModelEnum"}},"required":["document_id","create_if_missing","model"],"title":"GetOrCreateRAGIndexRequestModel"},"GetPhoneNumberExotelResponseModel":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"phone_number_id":{"description":"The ID of the phone number","type":"string","title":"Phone Number Id"},"assigned_agent":{"description":"The agent that is assigned to the phone number","anyOf":[{"$ref":"#/components/schemas/PhoneNumberAgentInfo"},{"type":"null"}]},"provider":{"description":"Phone provider","type":"string","default":"exotel","const":"exotel","title":"Provider"}},"example":{"label":"Exotel Outbound","phone_number":"+919999999999","phone_number_id":"phnum_X3Pbu5gP6NNKBscdCdwB","provider":"exotel"},"required":["phone_number","label","phone_number_id"],"title":"GetPhoneNumberExotelResponseModel"},"GetPhoneNumberInboundSIPTrunkConfigResponseModel":{"type":"object","properties":{"allowed_addresses":{"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.","type":"array","items":{"type":"string"},"title":"Allowed Addresses"},"allowed_numbers":{"description":"List of phone numbers that are allowed to use the trunk.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Numbers"},"media_encryption":{"$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"has_auth_credentials":{"description":"Whether authentication credentials are configured","type":"boolean","title":"Has Auth Credentials"},"username":{"description":"SIP trunk username (if available)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"remote_domains":{"description":"Domains of remote SIP servers used to validate TLS certificates.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Remote Domains"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"}},"required":["allowed_addresses","allowed_numbers","media_encryption","has_auth_credentials"],"title":"GetPhoneNumberInboundSIPTrunkConfigResponseModel"},"GetPhoneNumberOutboundSIPTrunkConfigResponseModel":{"description":"SIP Trunk configuration details for a phone number","type":"object","properties":{"address":{"description":"Hostname or IP the SIP INVITE is sent to","type":"string","title":"Address"},"transport":{"description":"Protocol to use for SIP transport","$ref":"#/components/schemas/SIPTrunkTransportEnum"},"media_encryption":{"description":"Whether or not to encrypt media (data layer).","$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"headers":{"description":"SIP headers for INVITE request","type":"object","additionalProperties":{"type":"string"},"title":"Headers"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"},"has_auth_credentials":{"description":"Whether authentication credentials are configured","type":"boolean","title":"Has Auth Credentials"},"username":{"description":"SIP trunk username (if available)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"has_outbound_trunk":{"description":"Whether a LiveKit SIP outbound trunk is configured","type":"boolean","default":false,"title":"Has Outbound Trunk"},"enabled_codecs":{"description":"Media codecs that are offered in the SDP for outbound calls. If empty, all supported codecs are offered.","type":"array","items":{"$ref":"#/components/schemas/MediaCodec"},"title":"Enabled Codecs"}},"required":["address","transport","media_encryption","has_auth_credentials"],"title":"GetPhoneNumberOutboundSIPTrunkConfigResponseModel"},"GetPhoneNumberSIPTrunkResponseModel":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"phone_number_id":{"description":"The ID of the phone number","type":"string","title":"Phone Number Id"},"assigned_agent":{"description":"The agent that is assigned to the phone number","anyOf":[{"$ref":"#/components/schemas/PhoneNumberAgentInfo"},{"type":"null"}]},"provider":{"description":"Phone provider","type":"string","default":"sip_trunk","const":"sip_trunk","title":"Provider"},"provider_config":{"anyOf":[{"$ref":"#/components/schemas/GetPhoneNumberOutboundSIPTrunkConfigResponseModel"},{"type":"null"}],"deprecated":true},"outbound_trunk":{"description":"Configuration of the Outbound SIP trunk - if configured.","anyOf":[{"$ref":"#/components/schemas/GetPhoneNumberOutboundSIPTrunkConfigResponseModel"},{"type":"null"}]},"inbound_trunk":{"description":"Configuration of the Inbound SIP trunk - if configured.","anyOf":[{"$ref":"#/components/schemas/GetPhoneNumberInboundSIPTrunkConfigResponseModel"},{"type":"null"}]},"livekit_stack":{"description":"Type of Livekit stack used for this number.","$ref":"#/components/schemas/LivekitStackType"},"store_sip_messages":{"description":"Whether to store SIP messages for this phone number.","type":"boolean","default":true,"title":"Store Sip Messages"}},"example":{"label":"Sales Team","livekit_stack":"standard","phone_number":"+1987654321","phone_number_id":"phone_456","provider":"sip_trunk"},"required":["phone_number","label","phone_number_id","livekit_stack"],"title":"GetPhoneNumberSIPTrunkResponseModel"},"GetPhoneNumberTwilioResponseModel":{"type":"object","properties":{"phone_number":{"description":"Phone number","type":"string","title":"Phone Number"},"label":{"description":"Label for the phone number","type":"string","title":"Label"},"supports_inbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Inbound"},"supports_outbound":{"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","type":"boolean","default":true,"deprecated":true,"title":"Supports Outbound"},"phone_number_id":{"description":"The ID of the phone number","type":"string","title":"Phone Number Id"},"assigned_agent":{"description":"The agent that is assigned to the phone number","anyOf":[{"$ref":"#/components/schemas/PhoneNumberAgentInfo"},{"type":"null"}]},"provider":{"description":"Phone provider","type":"string","default":"twilio","const":"twilio","title":"Provider"}},"example":{"label":"Customer Support","phone_number":"+1234567890","phone_number_id":"phone_123","provider":"twilio"},"required":["phone_number","label","phone_number_id"],"title":"GetPhoneNumberTwilioResponseModel"},"GetProjectsResponseModel":{"type":"object","properties":{"projects":{"description":"A list of projects with their metadata.","type":"array","items":{"$ref":"#/components/schemas/ProjectResponseModel"},"title":"Projects"}},"example":{"projects":[{"access_level":"viewer","author":"John Doe","can_be_downloaded":true,"content_type":"Novel","cover_image_url":"https://example.com/cover.jpg","create_date_unix":1714204800,"created_by_user_id":"Vbtgl3bRdj6lk79rYAgx","creation_meta":{"creation_progress":0.5,"status":"pending","type":"blank"},"default_model_id":"eleven_multilingual_v2","default_paragraph_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_paragraph_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","description":"This is a description of my project.","fiction":"fiction","genres":["Novel","Short Story"],"isbn_number":"978-90-274-3964-2","language":"en","last_conversion_date_unix":1714204800,"mature_content":false,"name":"My Project","original_publication_date":"2025-01-01","project_id":"aw1NgEzBg83R7vgmiJt6","public_share_id":"abc123def456789","quality_check_on":false,"quality_check_on_when_bulk_convert":false,"state":"default","target_audience":"young adult","title":"My Project","volume_normalization":true}]},"required":["projects"],"title":"GetProjectsResponseModel","x-fern-type-name":"GetProjectsResponse"},"GetPronunciationDictionariesMetadataResponseModel":{"type":"object","properties":{"pronunciation_dictionaries":{"description":"A list of pronunciation dictionaries and their metadata.","type":"array","items":{"$ref":"#/components/schemas/GetPronunciationDictionaryMetadataResponseModel"},"title":"Pronunciation Dictionaries"},"next_cursor":{"description":"The next cursor to use for pagination.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more pronunciation dictionaries to fetch.","type":"boolean","title":"Has More"}},"example":{"has_more":false,"next_cursor":"5xM3yVvZQKV0EfqQpLr2","pronunciation_dictionaries":[{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","latest_version_id":"5xM3yVvZQKV0EfqQpLr2","latest_version_rules_num":2,"name":"My Dictionary","permission_on_resource":"admin"}]},"required":["pronunciation_dictionaries","has_more"],"title":"GetPronunciationDictionariesMetadataResponseModel"},"GetPronunciationDictionaryMetadataResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Id"},"latest_version_id":{"description":"The ID of the latest version of the pronunciation dictionary.","type":"string","title":"Latest Version Id"},"latest_version_rules_num":{"description":"The number of rules in the latest version of the pronunciation dictionary.","type":"integer","title":"Latest Version Rules Num"},"name":{"description":"The name of the pronunciation dictionary.","type":"string","title":"Name"},"permission_on_resource":{"description":"The permission on the resource of the pronunciation dictionary.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"},"created_by":{"description":"The user ID of the creator of the pronunciation dictionary.","type":"string","title":"Created By"},"creation_time_unix":{"description":"The creation time of the pronunciation dictionary in Unix timestamp.","type":"integer","title":"Creation Time Unix"},"archived_time_unix":{"description":"The archive time of the pronunciation dictionary in Unix timestamp.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Archived Time Unix"},"description":{"description":"The description of the pronunciation dictionary.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"example":{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","latest_version_id":"5xM3yVvZQKV0EfqQpLr2","latest_version_rules_num":2,"name":"My Dictionary","permission_on_resource":"admin"},"required":["id","latest_version_id","latest_version_rules_num","name","permission_on_resource","created_by","creation_time_unix"],"title":"GetPronunciationDictionaryMetadataResponseModel","x-fern-type-name":"GetPronunciationDictionaryMetadataResponse"},"GetPronunciationDictionaryWithRulesResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Id"},"latest_version_id":{"description":"The ID of the latest version of the pronunciation dictionary.","type":"string","title":"Latest Version Id"},"latest_version_rules_num":{"description":"The number of rules in the latest version of the pronunciation dictionary.","type":"integer","title":"Latest Version Rules Num"},"name":{"description":"The name of the pronunciation dictionary.","type":"string","title":"Name"},"permission_on_resource":{"description":"The permission on the resource of the pronunciation dictionary.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"},"created_by":{"description":"The user ID of the creator of the pronunciation dictionary.","type":"string","title":"Created By"},"creation_time_unix":{"description":"The creation time of the pronunciation dictionary in Unix timestamp.","type":"integer","title":"Creation Time Unix"},"archived_time_unix":{"description":"The archive time of the pronunciation dictionary in Unix timestamp.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Archived Time Unix"},"description":{"description":"The description of the pronunciation dictionary.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rules":{"description":"The rules in the latest version of the pronunciation dictionary.","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/PronunciationDictionaryAliasRuleResponseModel"},{"$ref":"#/components/schemas/PronunciationDictionaryPhonemeRuleResponseModel"}]},"title":"Rules"}},"example":{"created_by":"ar6633Es2kUjFXBdR1iVc9ztsXl1","creation_time_unix":1714156800,"description":"This is a test dictionary","id":"5xM3yVvZQKV0EfqQpLrJ","latest_version_id":"5xM3yVvZQKV0EfqQpLr2","latest_version_rules_num":2,"name":"My Dictionary","permission_on_resource":"admin","rules":[{"alias":"tie-land","string_to_replace":"Thailand","type":"alias"},{"alphabet":"ipa","phoneme":"/təˈmeɪtoʊ/","string_to_replace":"Tomato","type":"phoneme"}]},"required":["id","latest_version_id","latest_version_rules_num","name","permission_on_resource","created_by","creation_time_unix","rules"],"title":"GetPronunciationDictionaryWithRulesResponseModel"},"GetResponseUnitTestResponseModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"GetResponseUnitTestResponseModel"},"GetSIPLogMessagesResponse":{"type":"object","properties":{"sip_messages":{"type":"array","items":{"$ref":"#/components/schemas/SIPLogMessage"},"title":"Sip Messages"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","default":false,"title":"Has More"}},"required":["sip_messages"],"title":"GetSIPLogMessagesResponse"},"GetScheduleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"get_schedule","const":"get_schedule","title":"Smb Tool Type"},"include_location_filter":{"type":"boolean","default":false,"title":"Include Location Filter"}},"title":"GetScheduleParams"},"GetSecretDependenciesResponseModel":{"type":"object","properties":{"dependencies":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableToolIdentifier"},{"$ref":"#/components/schemas/DependentUnknownToolIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableToolIdentifier","unknown":"#/components/schemas/DependentUnknownToolIdentifier"}}},"type":"array"},{"items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"type":"array"},{"items":{"$ref":"#/components/schemas/DependentPhoneNumberIdentifier"},"type":"array"}],"title":"Dependencies"},"next_cursor":{"description":"Cursor for fetching the next page of dependencies","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["dependencies"],"title":"GetSecretDependenciesResponseModel"},"GetSimulationTestResponseModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"tool_mock_overrides":{"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).","type":"object","additionalProperties":{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Output"},"type":"array"},"title":"Tool Mock Overrides"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"GetSimulationTestResponseModel"},"GetSpeechHistoryResponseModel":{"type":"object","properties":{"history":{"description":"A list of speech history items.","type":"array","items":{"$ref":"#/components/schemas/SpeechHistoryItemResponseModel"},"title":"History"},"last_history_item_id":{"description":"The ID of the last history item.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Last History Item Id"},"has_more":{"description":"Whether there are more history items to fetch.","type":"boolean","title":"Has More"},"scanned_until":{"description":"The timestamp of the last history item.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scanned Until"}},"example":{"has_more":true,"history":[{"character_count_change_from":17189,"character_count_change_to":17231,"content_type":"audio/mpeg","date_unix":1714650306,"history_item_id":"ja9xsmfGhxYcymxGcOGB","model_id":"eleven_multilingual_v2","request_id":"BF0BZg4IwLGBlaVjv9Im","settings":{"similarity_boost":0.5,"stability":0.71,"style":0,"use_speaker_boost":true},"source":"TTS","state":"created","text":"Hello, world!","voice_category":"premade","voice_id":"21m00Tcm4TlvDq8ikWAM","voice_name":"Rachel"}],"last_history_item_id":"ja9xsmfGhxYcymxGcOGB","scanned_until":1714650306},"required":["history","has_more"],"title":"GetSpeechHistoryResponseModel","x-fern-type-name":"GetSpeechHistoryResponse"},"GetTestInvocationsPageResponseModel":{"type":"object","properties":{"meta":{"default":{},"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/TestInvocationSummaryResponseModel"},"title":"Results"},"next_cursor":{"description":"Cursor for the next page of results","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more results available","type":"boolean","title":"Has More"}},"required":["results","has_more"],"title":"GetTestInvocationsPageResponseModel"},"GetTestSuiteInvocationResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"created_at":{"type":"integer","title":"Created At"},"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Id"},"repeat_count":{"type":"integer","default":1,"title":"Repeat Count"},"bucketing_status":{"description":"None when repeat_count==1 (no bucketing). Otherwise tracks bucketing lifecycle.","anyOf":[{"$ref":"#/components/schemas/BucketingStatus"},{"type":"null"}]},"result_groups":{"type":"array","items":{"$ref":"#/components/schemas/TestRunResultSummary"},"title":"Result Groups"},"test_runs":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestRunResponseModel"},"title":"Test Runs"}},"required":["id","test_runs"],"title":"GetTestSuiteInvocationResponseModel"},"GetTestsPageResponseModel":{"type":"object","properties":{"tests":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestSummaryResponseModel"},"title":"Tests"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["tests","has_more"],"title":"GetTestsPageResponseModel"},"GetTestsSummariesByIdsResponseModel":{"type":"object","properties":{"tests":{"description":"Dictionary mapping test IDs to their summary information","type":"object","additionalProperties":{"$ref":"#/components/schemas/UnitTestSummaryResponseModel"},"title":"Tests"}},"required":["tests"],"title":"GetTestsSummariesByIdsResponseModel"},"GetToolCallUnitTestResponseModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Output"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"required":["id","name"],"title":"GetToolCallUnitTestResponseModel"},"GetToolDependentAgentsResponseModel":{"type":"object","properties":{"agents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Agents"},"branches":{"type":"array","items":{"$ref":"#/components/schemas/DependentBranchInfo"},"title":"Branches"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["agents","has_more"],"title":"GetToolDependentAgentsResponseModel"},"GetToolExecutionsPageResponseModel":{"type":"object","properties":{"executions":{"type":"array","items":{"$ref":"#/components/schemas/ToolExecutionResponseModel"},"title":"Executions"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["executions","has_more"],"title":"GetToolExecutionsPageResponseModel"},"GetVoicesResponseModel":{"type":"object","properties":{"voices":{"description":"A list of available voices.","type":"array","items":{"$ref":"#/components/schemas/VoiceResponseModel"},"title":"Voices"}},"example":{"voices":[{"available_for_tiers":["creator","enterprise"],"category":"professional","description":"A warm, expressive voice with a touch of humor.","fine_tuning":{"is_allowed_to_fine_tune":true,"manual_verification_requested":false,"state":{"eleven_multilingual_v2":"fine_tuned"},"verification_attempts_count":2,"verification_failures":[]},"high_quality_base_model_ids":["eleven_v2_flash","eleven_flash_v2","eleven_turbo_v2_5","eleven_multilingual_v2","eleven_v2_5_flash","eleven_flash_v2_5","eleven_turbo_v2"],"is_legacy":false,"is_mixed":false,"is_owner":false,"labels":{"accent":"American","age":"middle-aged","description":"expressive","gender":"female","use_case":"social media"},"name":"Rachel","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3","settings":{"similarity_boost":1,"speed":1,"stability":1,"style":0,"use_speaker_boost":true},"sharing":{"category":"professional","cloned_by_count":50,"date_unix":1714204800,"description":"A female voice with a soft and friendly tone.","disable_at_unix":1714204800,"enabled_in_library":true,"featured":true,"financial_rewards_enabled":true,"free_users_allowed":true,"history_item_sample_id":"DCwhRBWXzGAHq8TQ4Fs18","labels":{"accent":"American","gender":"female"},"liked_by_count":100,"live_moderation_enabled":true,"moderation_check":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"name":"Rachel","notice_period":30,"original_voice_id":"DCwhRBWXzGAHq8TQ4Fs18","public_owner_id":"DCwhRBWXzGAHq8TQ4Fs18","rate":0.05,"reader_app_enabled":true,"reader_restricted_on":[{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"}],"review_status":"allowed","status":"enabled","voice_mixing_allowed":false,"whitelisted_emails":["example@example.com"]},"verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3"}],"voice_id":"21m00Tcm4TlvDq8ikWAM","voice_verification":{"is_verified":true,"language":"en","requires_verification":false,"verification_attempts":[{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"}],"verification_attempts_count":0,"verification_failures":[]}}]},"required":["voices"],"title":"GetVoicesResponseModel","x-fern-type-name":"GetVoicesResponse"},"GetVoicesV2ResponseModel":{"type":"object","properties":{"voices":{"description":"The list of voices matching the query.","type":"array","items":{"$ref":"#/components/schemas/VoiceResponseModel"},"title":"Voices"},"has_more":{"description":"Indicates whether there are more voices available in subsequent pages. Use this flag (and next_page_token) for reliable pagination instead of relying on total_count.","type":"boolean","title":"Has More"},"total_count":{"description":"The total count of voices matching the query. This value is a live snapshot that reflects the current state of the database and may change between requests as users create, modify, or delete voices. For reliable pagination, use the has_more flag instead of relying on this value. Only request this field when you actually need the total count (e.g., for display purposes), as calculating it incurs a performance cost.","type":"integer","title":"Total Count"},"next_page_token":{"description":"Token to retrieve the next page of results. Pass this value to the next request to continue pagination. Null if there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token"}},"required":["voices","has_more","total_count"],"title":"GetVoicesV2ResponseModel","x-fern-type-name":"GetVoicesV2Response"},"GetWhatsAppAccountResponse":{"type":"object","properties":{"business_account_id":{"type":"string","title":"Business Account Id"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"business_account_name":{"type":"string","title":"Business Account Name"},"phone_number_name":{"type":"string","title":"Phone Number Name"},"phone_number":{"type":"string","title":"Phone Number"},"assigned_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Agent Id"},"enable_messaging":{"type":"boolean","default":true,"title":"Enable Messaging"},"enable_audio_message_response":{"type":"boolean","default":true,"title":"Enable Audio Message Response"},"enable_typing_indicator":{"type":"boolean","default":true,"title":"Enable Typing Indicator"},"assigned_agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Agent Name"},"is_token_expired":{"type":"boolean","default":false,"title":"Is Token Expired"}},"required":["business_account_id","phone_number_id","business_account_name","phone_number_name","phone_number","assigned_agent_name"],"title":"GetWhatsAppAccountResponse"},"GetWorkspaceSecretsResponseModel":{"type":"object","properties":{"secrets":{"type":"array","items":{"$ref":"#/components/schemas/ConvAIWorkspaceStoredSecretConfig"},"title":"Secrets"},"next_cursor":{"description":"Cursor for fetching the next page of secrets","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["secrets"],"title":"GetWorkspaceSecretsResponseModel"},"GroupManagementActivityId":{"description":"OCSF Activity IDs for Group Management [3006] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/group_management","type":"integer","enum":[0,1,2,3,4,5,6,7,8,9,99],"title":"GroupManagementActivityId"},"GuardrailExecutionMode":{"type":"string","default":"streaming","enum":["streaming","blocking"],"title":"GuardrailExecutionMode"},"GuardrailsV1-Input":{"type":"object","properties":{"version":{"type":"string","default":"1","const":"1","title":"Version"},"focus":{"$ref":"#/components/schemas/FocusGuardrail"},"prompt_injection":{"$ref":"#/components/schemas/PromptInjectionGuardrail"},"content":{"$ref":"#/components/schemas/ContentGuardrail-Input"},"moderation":{"anyOf":[{"$ref":"#/components/schemas/ModerationGuardrail-Input"},{"type":"null"}],"x-fern-ignore":true},"custom":{"$ref":"#/components/schemas/CustomGuardrail-Input"}},"title":"GuardrailsV1"},"GuardrailsV1-Output":{"type":"object","properties":{"version":{"type":"string","default":"1","const":"1","title":"Version"},"focus":{"$ref":"#/components/schemas/FocusGuardrail"},"prompt_injection":{"$ref":"#/components/schemas/PromptInjectionGuardrail"},"content":{"$ref":"#/components/schemas/ContentGuardrail-Output"},"moderation":{"anyOf":[{"$ref":"#/components/schemas/ModerationGuardrail-Output"},{"type":"null"}],"x-fern-ignore":true},"custom":{"$ref":"#/components/schemas/CustomGuardrail-Output"}},"title":"GuardrailsV1"},"HTTPValidationError":{"type":"object","properties":{"detail":{"type":"array","items":{"$ref":"#/components/schemas/ValidationError"},"title":"Detail"}},"title":"HTTPValidationError","x-fern-type-name":"HTTPValidationError"},"HistoryAlignmentResponseModel":{"type":"object","properties":{"characters":{"description":"The characters in the alignment.","type":"array","items":{"type":"string"},"title":"Characters"},"character_start_times_seconds":{"description":"The start times of the characters in seconds.","type":"array","items":{"type":"number"},"title":"Character Start Times Seconds"},"character_end_times_seconds":{"description":"The end times of the characters in seconds.","type":"array","items":{"type":"number"},"title":"Character End Times Seconds"}},"required":["characters","character_start_times_seconds","character_end_times_seconds"],"title":"HistoryAlignmentResponseModel"},"HistoryAlignmentsResponseModel":{"type":"object","properties":{"alignment":{"description":"The alignment of the text.","$ref":"#/components/schemas/HistoryAlignmentResponseModel"},"normalized_alignment":{"description":"The normalized alignment of the text.","$ref":"#/components/schemas/HistoryAlignmentResponseModel"}},"required":["alignment","normalized_alignment"],"title":"HistoryAlignmentsResponseModel"},"HtmlExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"html","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"HtmlExportOptions"},"HttpRequestModel":{"description":"HTTP request details.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/http_request","type":"object","properties":{"http_method":{"description":"HTTP method (GET, POST, etc.)","type":"string","title":"Http Method"},"url":{"description":"Request URL object","$ref":"#/components/schemas/UrlModel"},"user_agent":{"description":"User agent string","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent"},"x_forwarded_for":{"description":"X-Forwarded-For header as a list","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"X Forwarded For"}},"additionalProperties":false,"required":["http_method","url"],"title":"HttpRequestModel"},"Icon":{"description":"An icon for display in user interfaces.","type":"object","properties":{"src":{"type":"string","title":"Src"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"sizes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sizes"}},"additionalProperties":true,"required":["src"],"title":"Icon"},"ImageAnalysis":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/ImageAnalysisResult"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"ImageAnalysis"},"ImageAnalysisResult":{"type":"object","properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"mood_and_style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mood And Style"},"composition_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Composition Notes"},"visible_text":{"description":"Readable text overlaid or shown in the image, if any.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Text"},"subjects":{"type":"array","items":{"$ref":"#/components/schemas/ImageSubject"},"title":"Subjects"}},"required":["title","description"],"title":"ImageAnalysisResult"},"ImageAvatar":{"type":"object","properties":{"type":{"description":"The type of the avatar","type":"string","default":"image","const":"image","title":"Type"},"url":{"description":"The URL of the avatar","type":"string","default":"","title":"Url"}},"title":"ImageAvatar"},"ImageSubject":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"required":["name","description"],"title":"ImageSubject"},"InboundSIPTrunkConfigRequestModel":{"type":"object","properties":{"allowed_addresses":{"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.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Addresses"},"allowed_numbers":{"description":"List of phone numbers that are allowed to use the trunk.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Numbers"},"media_encryption":{"description":"Whether or not to encrypt media (data layer).","default":"allowed","$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"credentials":{"description":"Optional digest authentication credentials (username/password).","anyOf":[{"$ref":"#/components/schemas/SIPTrunkCredentialsRequestModel"},{"type":"null"}]},"remote_domains":{"description":"Domains of remote SIP servers used to validate TLS certificates.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Remote Domains"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"}},"title":"InboundSIPTrunkConfigRequestModel"},"IntegrationType":{"type":"string","enum":["mcp_server","mcp_integration"],"title":"IntegrationType"},"InteractionBudget":{"type":"string","enum":["realtime","5_minutes","10_minutes","1_hour"],"title":"InteractionBudget"},"InternalAlertingWebhookNotifier":{"type":"object","properties":{"type":{"type":"string","default":"webhook","const":"webhook","title":"Type"},"url":{"description":"The URL to send alert lifecycle notifications to.","type":"string","maxLength":2048,"title":"Url"},"method":{"description":"HTTP method used when calling the webhook URL.","default":"POST","$ref":"#/components/schemas/AlertingWebhookMethod"},"headers":{"description":"Custom request headers sent with every notification. Secret header values are encrypted at rest and never returned by the API.","type":"array","items":{"$ref":"#/components/schemas/AlertingWebhookHeader"},"maxItems":25,"title":"Headers"}},"required":["url"],"title":"InternalAlertingWebhookNotifier"},"InvoiceResponseModel":{"type":"object","properties":{"amount_due_cents":{"description":"The amount due in cents.","type":"integer","title":"Amount Due Cents"},"subtotal_cents":{"description":"The subtotal amount in cents before tax (exclusive of tax and discounts).","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subtotal Cents"},"tax_cents":{"description":"The tax amount in cents.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tax Cents"},"discount_percent_off":{"description":"Deprecated. Use [discounts] instead. The discount applied to the invoice. E.g. [20.0f] for 20% off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Percent Off"},"discount_amount_off":{"description":"Deprecated. Use [discounts] instead. The discount applied to the invoice. E.g. [20.0f] for 20 cents off.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Discount Amount Off"},"discounts":{"description":"The discounts applied to the invoice.","type":"array","items":{"$ref":"#/components/schemas/DiscountResponseModel"},"title":"Discounts"},"next_payment_attempt_unix":{"description":"The Unix timestamp of the next payment attempt. -1 when there is no next payment attempt.","type":"integer","title":"Next Payment Attempt Unix"},"payment_intent_status":{"description":"Deprecated. Use [payment_intent_statusses] instead. The status of this invoice's first payment intent. None when there is no payment intent.","anyOf":[{"type":"string","enum":["canceled","processing","requires_action","requires_capture","requires_confirmation","requires_payment_method","succeeded"]},{"type":"null"}],"title":"Payment Intent Status"},"payment_intent_statusses":{"description":"The statuses of this invoice's payment intents. Empty list when there are no payment intents.","type":"array","items":{"type":"string","enum":["canceled","processing","requires_action","requires_capture","requires_confirmation","requires_payment_method","succeeded"]},"title":"Payment Intent Statusses"}},"example":{"amount_due_cents":1000,"discounts":[{"discount_percent_off":20}],"next_payment_attempt_unix":1738356858,"payment_intent_status":"processing","payment_intent_statusses":["processing","succeeded"],"subtotal_cents":900,"tax_cents":100},"required":["amount_due_cents","discounts","next_payment_attempt_unix","payment_intent_status","payment_intent_statusses"],"title":"InvoiceResponseModel","x-fern-type-name":"InvoiceResponse"},"ItemId":{"type":"string","pattern":"^proditem_[a-z0-9]{26}$"},"KbExternalSyncJob":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ExternalSyncProvider"},"folder_id":{"type":"string","title":"Folder Id"},"integration_connection_id":{"type":"string","title":"Integration Connection Id"},"triggered_by":{"$ref":"#/components/schemas/ExternalSyncJobTrigger"},"status":{"default":"queued","$ref":"#/components/schemas/CrawlStatus"},"sync_type":{"anyOf":[{"$ref":"#/components/schemas/ExternalSyncJobType"},{"type":"null"}]},"items_identified":{"type":"integer","default":0,"title":"Items Identified"},"items_processed":{"type":"integer","default":0,"title":"Items Processed"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"updated_at":{"type":"integer","title":"Updated At"},"id":{"type":"string","title":"Id"},"created_at":{"type":"integer","title":"Created At"}},"required":["type","folder_id","integration_connection_id","triggered_by","updated_at","id","created_at"],"title":"KbExternalSyncJob"},"KnowledgeBaseBulkDeleteSuccessfulResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"success","const":"success","title":"Status"},"data":{"$ref":"#/components/schemas/KnowledgeBaseDeletedResponseModel"}},"required":["status","data"],"title":"KnowledgeBaseBulkDeleteSuccessfulResponseModel"},"KnowledgeBaseContentSearchResponseModel":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseContentSearchResult"},"title":"Results"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["results"],"title":"KnowledgeBaseContentSearchResponseModel"},"KnowledgeBaseContentSearchResult":{"type":"object","properties":{"document":{"discriminator":{"propertyName":"type","mapping":{"file":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel","folder":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel","text":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel","url":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel"}],"title":"Document"},"search_snippet":{"anyOf":[{"items":{"$ref":"#/components/schemas/SearchHighlightSegment"},"type":"array"},{"type":"null"}],"title":"Search Snippet"},"score":{"type":"number","title":"Score"}},"required":["document","score"],"title":"KnowledgeBaseContentSearchResult"},"KnowledgeBaseDeletedResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"}},"required":["id"],"title":"KnowledgeBaseDeletedResponseModel"},"KnowledgeBaseDependentType":{"type":"string","enum":["direct","transitive","all"],"title":"KnowledgeBaseDependentType"},"KnowledgeBaseDocumentChunkResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"content":{"title":"Content","type":"string"}},"required":["id","name","content"],"title":"KnowledgeBaseDocumentChunkResponseModel"},"KnowledgeBaseDocumentChunksResponseModel":{"type":"object","properties":{"chunks":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseDocumentChunkResponseModel"},"title":"Chunks"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["chunks"],"title":"KnowledgeBaseDocumentChunksResponseModel"},"KnowledgeBaseDocumentMetadataResponseModel":{"type":"object","properties":{"created_at_unix_secs":{"type":"integer","title":"Created At Unix Secs"},"last_updated_at_unix_secs":{"type":"integer","title":"Last Updated At Unix Secs"},"size_bytes":{"type":"integer","title":"Size Bytes"}},"required":["created_at_unix_secs","last_updated_at_unix_secs","size_bytes"],"title":"KnowledgeBaseDocumentMetadataResponseModel"},"KnowledgeBaseDocumentType":{"type":"string","enum":["file","url","text","folder"],"title":"KnowledgeBaseDocumentType"},"KnowledgeBaseFolderPathSegmentResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"required":["id","name"],"title":"KnowledgeBaseFolderPathSegmentResponseModel"},"KnowledgeBaseFolderPathSegmentSummaryResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"}},"required":["id"],"title":"KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"KnowledgeBaseLocator":{"type":"object","properties":{"type":{"description":"The type of the knowledge base","$ref":"#/components/schemas/KnowledgeBaseDocumentType"},"name":{"description":"The name of the knowledge base","type":"string","title":"Name"},"id":{"description":"The ID of the knowledge base","type":"string","title":"Id"},"usage_mode":{"description":"The usage mode of the knowledge base","default":"auto","$ref":"#/components/schemas/DocumentUsageModeEnum"}},"example":{"id":"123","name":"My Knowledge Base","type":"file","usage_mode":"auto"},"required":["type","name","id"],"title":"KnowledgeBaseLocator"},"KnowledgeBaseRagChunkModel":{"type":"object","properties":{"chunk_id":{"type":"string","title":"Chunk Id"},"document_id":{"type":"string","title":"Document Id"},"content":{"title":"Content","type":"string"}},"required":["chunk_id","document_id","content"],"title":"KnowledgeBaseRagChunkModel"},"KnowledgeBaseRagToolConfig":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"knowledge_base_rag","const":"knowledge_base_rag","title":"System Tool Type"}},"title":"KnowledgeBaseRagToolConfig"},"KnowledgeBaseRagToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"knowledge_base_rag_success","const":"knowledge_base_rag_success","title":"Result Type"},"status":{"default":"success","$ref":"#/components/schemas/KnowledgeBaseRagToolStatus"},"chunk_count":{"description":"Number of relevant chunks retrieved","type":"integer","default":0,"title":"Chunk Count"},"message":{"description":"Human-readable status for the LLM about the search results","type":"string","default":"Referenced knowledge base.","title":"Message"},"chunks":{"description":"Retrieved chunks; populated only in the rag-result-in-tool-result mode","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseRagChunkModel"},"title":"Chunks"}},"title":"KnowledgeBaseRagToolResultModel"},"KnowledgeBaseRagToolStatus":{"type":"string","default":"success","enum":["success","no_documents","no_results"],"title":"KnowledgeBaseRagToolStatus"},"KnowledgeBaseSortBy":{"type":"string","enum":["name","created_at","updated_at","size"],"title":"KnowledgeBaseSortBy"},"KnowledgeBaseSourceFileUrlResponseModel":{"type":"object","properties":{"signed_url":{"description":"Signed URL to download the source file directly","type":"string","title":"Signed Url"}},"required":["signed_url"],"title":"KnowledgeBaseSourceFileUrlResponseModel"},"KnowledgeBaseSummaryBatchSuccessfulResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"success","const":"success","title":"Status"},"data":{"discriminator":{"propertyName":"type","mapping":{"file":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel","folder":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel","text":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel","url":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"}},"oneOf":[{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryURLResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModel"},{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModel"}],"title":"Data"}},"required":["status","data"],"title":"KnowledgeBaseSummaryBatchSuccessfulResponseModel"},"LLM":{"type":"string","default":"gemini-2.5-flash","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-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","claude-sonnet-4-5","claude-opus-4-7","claude-opus-4-8","claude-sonnet-4-6","claude-sonnet-5","claude-sonnet-4","claude-haiku-4-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","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"},"LLMCategoryUsage":{"type":"object","properties":{"irreversible_generation":{"$ref":"#/components/schemas/LLMUsage-Output"},"initiated_generation":{"$ref":"#/components/schemas/LLMUsage-Output"}},"title":"LLMCategoryUsage"},"LLMDeprecationConfigModel":{"type":"object","properties":{"warning_start_days":{"description":"Number of days before the provider deprecation date when warnings start being shown.","type":"integer","title":"Warning Start Days"},"fallback_start_days":{"description":"Number of days before the provider deprecation date when traffic starts being routed to the replacement model.","type":"integer","title":"Fallback Start Days"},"fallback_complete_days":{"description":"Number of days before the provider deprecation date when all traffic is routed to the replacement model.","type":"integer","title":"Fallback Complete Days"},"fallback_start_percentage":{"description":"Percentage of traffic routed to the replacement model when fallback begins.","type":"integer","title":"Fallback Start Percentage"},"fallback_complete_percentage":{"description":"Percentage of traffic routed to the replacement model when fallback is complete.","type":"integer","title":"Fallback Complete Percentage"}},"example":{"fallback_complete_days":7,"fallback_complete_percentage":100,"fallback_start_days":14,"fallback_start_percentage":25,"warning_start_days":30},"required":["warning_start_days","fallback_start_days","fallback_complete_days","fallback_start_percentage","fallback_complete_percentage"],"title":"LLMDeprecationConfigModel"},"LLMDeprecationInfoModel":{"type":"object","properties":{"llm":{"description":"The identifier of the deprecated LLM model.","$ref":"#/components/schemas/LLM"},"is_deprecated":{"description":"Whether this model is currently deprecated. True if the model is immediately deprecated or within the warning period.","type":"boolean","title":"Is Deprecated"},"is_in_warning_period":{"description":"Whether this model is currently in the warning period before deprecation.","type":"boolean","default":false,"title":"Is In Warning Period"},"is_in_fallback_period":{"description":"Whether traffic is currently being progressively routed to the replacement model.","type":"boolean","default":false,"title":"Is In Fallback Period"},"fallback_percentage":{"description":"Current percentage of traffic being routed to the replacement model (0-100).","type":"integer","default":0,"title":"Fallback Percentage"},"provider_deprecation_date":{"description":"The date when the model provider will deprecate this model. Null for immediately deprecated models.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Provider Deprecation Date"},"replacement_model":{"description":"The model that replaces this deprecated model. Traffic will be automatically routed to this model.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"deprecation_config":{"description":"Custom deprecation timing configuration for this model. Null if using the default configuration.","anyOf":[{"$ref":"#/components/schemas/LLMDeprecationConfigModel"},{"type":"null"}]}},"example":{"fallback_percentage":0,"is_deprecated":true,"is_in_fallback_period":false,"is_in_warning_period":true,"llm":"gpt-4o-mini","provider_deprecation_date":"2025-06-01T00:00:00Z","replacement_model":"gpt-4o"},"required":["llm","is_deprecated"],"title":"LLMDeprecationInfoModel"},"LLMInfoModel-Input":{"type":"object","properties":{"llm":{"description":"The model identifier.","$ref":"#/components/schemas/LLM"},"is_checkpoint":{"description":"Whether this is a pinned checkpoint version of a model rather than a top-level alias.","type":"boolean","title":"Is Checkpoint"},"max_tokens_limit":{"description":"Maximum number of output tokens the model can generate.","type":"integer","title":"Max Tokens Limit"},"max_context_limit":{"description":"Maximum number of input context tokens the model supports.","type":"integer","title":"Max Context Limit"},"supports_image_input":{"description":"Whether the model supports image file inputs during conversations.","type":"boolean","title":"Supports Image Input"},"supports_document_input":{"description":"Whether the model supports document (PDF) file inputs during conversations.","type":"boolean","title":"Supports Document Input"},"supports_parallel_tool_calls":{"description":"Whether the model supports calling multiple tools in parallel.","type":"boolean","title":"Supports Parallel Tool Calls"},"available_reasoning_efforts":{"description":"Available reasoning effort levels for this model. Null if the model does not support configurable reasoning.","anyOf":[{"items":{"$ref":"#/components/schemas/LLMReasoningEffort"},"type":"array"},{"type":"null"}],"title":"Available Reasoning Efforts"},"deprecation_info":{"description":"Deprecation information if this model is deprecated or scheduled for deprecation. Null if the model is not affected.","anyOf":[{"$ref":"#/components/schemas/LLMDeprecationInfoModel"},{"type":"null"}]},"regional_processing_surcharge":{"description":"Regional processing surcharge details if this model has additional costs in the current deployment region. Null if no surcharge applies.","anyOf":[{"$ref":"#/components/schemas/RegionalProcessingSurchargeInfo"},{"type":"null"}]}},"example":{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true},"required":["llm","is_checkpoint","max_tokens_limit","max_context_limit","supports_image_input","supports_document_input","supports_parallel_tool_calls"],"title":"LLMInfoModel"},"LLMInfoModel-Output":{"type":"object","properties":{"llm":{"description":"The model identifier.","$ref":"#/components/schemas/LLM"},"is_checkpoint":{"description":"Whether this is a pinned checkpoint version of a model rather than a top-level alias.","type":"boolean","title":"Is Checkpoint"},"max_tokens_limit":{"description":"Maximum number of output tokens the model can generate.","type":"integer","title":"Max Tokens Limit"},"max_context_limit":{"description":"Maximum number of input context tokens the model supports.","type":"integer","title":"Max Context Limit"},"supports_image_input":{"description":"Whether the model supports image file inputs during conversations.","type":"boolean","title":"Supports Image Input"},"supports_document_input":{"description":"Whether the model supports document (PDF) file inputs during conversations.","type":"boolean","title":"Supports Document Input"},"supports_parallel_tool_calls":{"description":"Whether the model supports calling multiple tools in parallel.","type":"boolean","title":"Supports Parallel Tool Calls"},"available_reasoning_efforts":{"description":"Available reasoning effort levels for this model. Null if the model does not support configurable reasoning.","anyOf":[{"items":{"$ref":"#/components/schemas/LLMReasoningEffort"},"type":"array"},{"type":"null"}],"title":"Available Reasoning Efforts"},"deprecation_info":{"description":"Deprecation information if this model is deprecated or scheduled for deprecation. Null if the model is not affected.","anyOf":[{"$ref":"#/components/schemas/LLMDeprecationInfoModel"},{"type":"null"}]},"regional_processing_surcharge":{"description":"Regional processing surcharge details if this model has additional costs in the current deployment region. Null if no surcharge applies.","anyOf":[{"$ref":"#/components/schemas/RegionalProcessingSurchargeInfo"},{"type":"null"}]}},"example":{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true},"required":["llm","is_checkpoint","max_tokens_limit","max_context_limit","supports_image_input","supports_document_input","supports_parallel_tool_calls"],"title":"LLMInfoModel"},"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"},"LLMListResponseModel-Input":{"type":"object","properties":{"llms":{"description":"List of all available LLM models that can be used with agents.","type":"array","items":{"$ref":"#/components/schemas/LLMInfoModel-Input"},"title":"Llms"},"default_deprecation_config":{"description":"The default deprecation timing configuration used for models without a custom override.","$ref":"#/components/schemas/LLMDeprecationConfigModel"}},"example":{"default_deprecation_config":{"fallback_complete_days":7,"fallback_complete_percentage":100,"fallback_start_days":14,"fallback_start_percentage":25,"warning_start_days":30},"llms":[{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true}]},"required":["llms","default_deprecation_config"],"title":"LLMListResponseModel"},"LLMListResponseModel-Output":{"type":"object","properties":{"llms":{"description":"List of all available LLM models that can be used with agents.","type":"array","items":{"$ref":"#/components/schemas/LLMInfoModel-Output"},"title":"Llms"},"default_deprecation_config":{"description":"The default deprecation timing configuration used for models without a custom override.","$ref":"#/components/schemas/LLMDeprecationConfigModel"}},"example":{"default_deprecation_config":{"fallback_complete_days":7,"fallback_complete_percentage":100,"fallback_start_days":14,"fallback_start_percentage":25,"warning_start_days":30},"llms":[{"is_checkpoint":false,"llm":"gemini-2.5-flash","max_context_limit":1048576,"max_tokens_limit":8192,"supports_document_input":true,"supports_image_input":true,"supports_parallel_tool_calls":true}]},"required":["llms","default_deprecation_config"],"title":"LLMListResponseModel"},"LLMLiteralJsonSchemaProperty":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["boolean","string","integer","number"]},{"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2}],"title":"Type"},"description":{"type":"string","minLength":0,"title":"Description"},"enum":{"description":"List of allowed string values for string type parameters","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum"}},"required":["type","description"],"title":"LLMLiteralJsonSchemaProperty"},"LLMParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"llm","title":"Type"},"description":{"description":"A description of the evaluation strategy to use for the test.","type":"string","title":"Description"}},"required":["type","description"],"title":"LLMParameterEvaluationStrategy"},"LLMReasoningEffort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh","max"],"title":"LLMReasoningEffort"},"LLMSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"llm","const":"llm","title":"Source"},"prompt":{"description":"Prompt override for the LLM. If not provided, the original schema description is used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"}},"title":"LLMSchemaOverride"},"LLMTokensCategoryUsage":{"type":"object","properties":{"tokens":{"type":"integer","default":0,"title":"Tokens"},"price":{"type":"number","default":0,"title":"Price"}},"title":"LLMTokensCategoryUsage"},"LLMUsage-Input":{"type":"object","properties":{"model_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LLMInputOutputTokensUsage"},"propertyNames":{"$ref":"#/components/schemas/LLM"},"title":"Model Usage"}},"title":"LLMUsage"},"LLMUsage-Output":{"type":"object","properties":{"model_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LLMInputOutputTokensUsage"},"propertyNames":{"$ref":"#/components/schemas/LLM"},"title":"Model Usage"}},"title":"LLMUsage"},"LLMUsageCalculatorLLMResponseModel":{"type":"object","properties":{"llm":{"$ref":"#/components/schemas/LLM"},"price_per_minute":{"type":"number","title":"Price Per Minute"}},"required":["llm","price_per_minute"],"title":"LLMUsageCalculatorLLMResponseModel"},"LLMUsageCalculatorPublicRequestModel":{"type":"object","properties":{"prompt_length":{"description":"Length of the prompt in characters.","type":"integer","title":"Prompt Length"},"number_of_pages":{"description":"Pages of content in PDF documents or URLs in the agent's knowledge base.","type":"integer","title":"Number Of Pages"},"rag_enabled":{"description":"Whether RAG is enabled.","type":"boolean","title":"Rag Enabled"}},"required":["prompt_length","number_of_pages","rag_enabled"],"title":"LLMUsageCalculatorPublicRequestModel"},"LLMUsageCalculatorRequestModel":{"type":"object","properties":{"prompt_length":{"description":"Length of the prompt in characters.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Length"},"number_of_pages":{"description":"Pages of content in pdf documents OR urls in agent's Knowledge Base.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Pages"},"rag_enabled":{"description":"Whether RAG is enabled.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rag Enabled"}},"title":"LLMUsageCalculatorRequestModel"},"LLMUsageCalculatorResponseModel":{"type":"object","properties":{"llm_prices":{"type":"array","items":{"$ref":"#/components/schemas/LLMUsageCalculatorLLMResponseModel"},"title":"Llm Prices"}},"required":["llm_prices"],"title":"LLMUsageCalculatorResponseModel"},"LanguageAddedResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"LanguageAddedResponse"},"LanguageDetectionToolConfig":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"language_detection","const":"language_detection","title":"System Tool Type"}},"title":"LanguageDetectionToolConfig"},"LanguageDetectionToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"language_detection_success","const":"language_detection_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"title":"LanguageDetectionToolResultModel"},"LanguageInfo":{"type":"object","properties":{"code":{"description":"The language code (e.g. 'en', 'fr', 'es-ES').","type":"string","title":"Code"},"label":{"description":"The human-readable language name (e.g. 'English', 'French', 'Spanish (Spain)').","type":"string","title":"Label"}},"example":{"code":"es-ES","label":"Spanish (Spain)"},"required":["code","label"],"title":"LanguageInfo"},"LanguagePairInfo":{"type":"object","properties":{"source_language":{"description":"The source language.","$ref":"#/components/schemas/LanguageInfo"},"destination_languages":{"description":"The available destination languages for this source language.","type":"array","items":{"$ref":"#/components/schemas/LanguageInfo"},"title":"Destination Languages"}},"example":{"destination_languages":[{"code":"es-ES","label":"Spanish (Spain)"},{"code":"fr","label":"French"}],"source_language":{"code":"en","label":"English"}},"required":["source_language","destination_languages"],"title":"LanguagePairInfo"},"LanguagePreset-Input":{"type":"object","properties":{"overrides":{"description":"The overrides for the language preset","$ref":"#/components/schemas/ConversationConfigClientOverride-Input"},"first_message_translation":{"description":"The translation of the first message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]},"soft_timeout_translation":{"description":"The translation of the soft timeout message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]}},"required":["overrides"],"title":"LanguagePreset"},"LanguagePreset-Output":{"type":"object","properties":{"overrides":{"description":"The overrides for the language preset","$ref":"#/components/schemas/ConversationConfigClientOverride-Output"},"first_message_translation":{"description":"The translation of the first message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]},"soft_timeout_translation":{"description":"The translation of the soft timeout message","anyOf":[{"$ref":"#/components/schemas/LanguagePresetTranslation"},{"type":"null"}]}},"required":["overrides"],"title":"LanguagePreset"},"LanguagePresetTranslation":{"type":"object","properties":{"source_hash":{"type":"string","title":"Source Hash"},"text":{"type":"string","title":"Text"}},"required":["source_hash","text"],"title":"LanguagePresetTranslation"},"LanguageResponseModel":{"type":"object","properties":{"language_id":{"description":"The unique identifier of the language.","type":"string","title":"Language Id"},"name":{"description":"The name of the language.","type":"string","title":"Name"}},"example":{"language_id":"en","name":"English"},"required":["language_id","name"],"title":"LanguageResponseModel","x-fern-type-name":"LanguageResponse"},"LanguagesResponse":{"discriminator":{"propertyName":"kind","mapping":{"pair":"#/components/schemas/PairedLanguagesResponse","single":"#/components/schemas/SingleLanguagesResponse"}},"oneOf":[{"$ref":"#/components/schemas/PairedLanguagesResponse"},{"$ref":"#/components/schemas/SingleLanguagesResponse"}]},"LeaveMessageParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"leave_message","const":"leave_message","title":"Smb Tool Type"}},"title":"LeaveMessageParams"},"LibraryVoiceResponseModel":{"type":"object","properties":{"public_owner_id":{"description":"The public owner id of the voice.","type":"string","title":"Public Owner Id"},"voice_id":{"description":"The id of the voice.","type":"string","title":"Voice Id"},"date_unix":{"description":"The date the voice was added to the library in Unix time.","type":"integer","title":"Date Unix"},"name":{"description":"The name of the voice.","type":"string","title":"Name"},"accent":{"description":"The accent of the voice.","type":"string","title":"Accent"},"gender":{"description":"The gender of the voice.","type":"string","title":"Gender"},"age":{"description":"The age of the voice.","type":"string","title":"Age"},"descriptive":{"description":"The descriptive of the voice.","type":"string","title":"Descriptive"},"use_case":{"description":"The use case of the voice.","type":"string","title":"Use Case"},"category":{"description":"The category of the voice.","type":"string","enum":["generated","cloned","premade","professional","famous","high_quality"],"title":"Category"},"language":{"description":"The language of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"locale":{"description":"The locale of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"description":{"description":"The description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"preview_url":{"description":"The preview URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"},"usage_character_count_1y":{"description":"The usage character count of the voice in the last year.","type":"integer","title":"Usage Character Count 1Y"},"usage_character_count_7d":{"description":"The usage character count of the voice in the last 7 days.","type":"integer","title":"Usage Character Count 7D"},"play_api_usage_character_count_1y":{"description":"The play API usage character count of the voice in the last year.","type":"integer","title":"Play Api Usage Character Count 1Y"},"cloned_by_count":{"description":"The number of times the voice has been cloned.","type":"integer","title":"Cloned By Count"},"rate":{"description":"The rate multiplier of the voice.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"},"fiat_rate":{"description":"The rate of the voice in USD per 1000 credits. null if default","anyOf":[{"type":"number"},{"type":"null"}],"title":"Fiat Rate"},"free_users_allowed":{"description":"Whether free users are allowed to use the voice.","type":"boolean","title":"Free Users Allowed"},"live_moderation_enabled":{"description":"Whether live moderation is enabled for the voice.","type":"boolean","title":"Live Moderation Enabled"},"featured":{"description":"Whether the voice is featured.","type":"boolean","title":"Featured"},"verified_languages":{"description":"The verified languages of the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/VerifiedVoiceLanguageResponseModel"},"type":"array"},{"type":"null"}],"title":"Verified Languages"},"notice_period":{"description":"The notice period of the voice.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Notice Period"},"instagram_username":{"description":"The Instagram username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instagram Username"},"twitter_username":{"description":"The Twitter username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitter Username"},"youtube_username":{"description":"The YouTube username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Youtube Username"},"tiktok_username":{"description":"The TikTok username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiktok Username"},"image_url":{"description":"The image URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"is_added_by_user":{"description":"Whether the voice was added by the user.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Added By User"},"is_bookmarked":{"description":"Whether the voice is bookmarked by the current user. Only relevant when is_added_by_user is True.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Bookmarked"}},"example":{"accent":"american","age":"young","category":"professional","cloned_by_count":11,"date_unix":1714423232,"description":"Perfectly calm, neutral and strong voice. Great for a young female protagonist.","descriptive":"calm","featured":false,"free_users_allowed":true,"gender":"Female","language":"en","live_moderation_enabled":false,"name":"Alita","play_api_usage_character_count_1y":12852,"preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3","public_owner_id":"63e84100a6bf7874ba37a1bab9a31828a379ec94b891b401653b655c5110880f","rate":1,"usage_character_count_1y":12852,"usage_character_count_7d":12852,"use_case":"characters_animation","verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/wqkMCd9huxXHX1dy5mLJn4QEQHj1/voices/sB1b5zUrxQVAFl2PhZFp/55e71aac-5cb7-4b3d-8241-429388160509.mp3"}],"voice_id":"sB1b5zUrxQVAFl2PhZFp"},"required":["public_owner_id","voice_id","date_unix","name","accent","gender","age","descriptive","use_case","category","usage_character_count_1y","usage_character_count_7d","play_api_usage_character_count_1y","cloned_by_count","free_users_allowed","live_moderation_enabled","featured"],"title":"LibraryVoiceResponseModel","x-fern-type-name":"LibraryVoiceResponse"},"ListAgentProceduresParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_agent_procedures","const":"list_agent_procedures","title":"Smb Tool Type"}},"title":"ListAgentProceduresParams"},"ListAgentReferencesParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_agent_references","const":"list_agent_references","title":"Smb Tool Type"}},"title":"ListAgentReferencesParams"},"ListAgentRulesParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_agent_rules","const":"list_agent_rules","title":"Smb Tool Type"}},"title":"ListAgentRulesParams"},"ListAssetsParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_assets","const":"list_assets","title":"Smb Tool Type"}},"title":"ListAssetsParams"},"ListAuthConnectionsResponse":{"type":"object","properties":{"auth_connections":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/OAuth2ClientCredsResponse"},{"$ref":"#/components/schemas/RefreshTokenAuthResponse"},{"$ref":"#/components/schemas/BasicAuthResponse"},{"$ref":"#/components/schemas/BearerAuthResponse"},{"$ref":"#/components/schemas/OAuth2JWTResponse"},{"$ref":"#/components/schemas/PrivateKeyJWTResponse"},{"$ref":"#/components/schemas/MTLSAuthResponse"},{"$ref":"#/components/schemas/CustomHeaderAuthResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse"},{"$ref":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse"},{"$ref":"#/components/schemas/WhatsAppAuthResponse"},{"$ref":"#/components/schemas/SlackBotAuthResponse"},{"$ref":"#/components/schemas/UrlSecretAuthResponse"}],"description":"The type of auth connection config","discriminator":{"propertyName":"auth_type","mapping":{"api_integration_oauth2_auth_code":"#/components/schemas/ApiIntegrationOAuth2AuthCodeResponse","api_integration_oauth2_custom_app":"#/components/schemas/ApiIntegrationOAuth2CustomAppResponse","basic_auth":"#/components/schemas/BasicAuthResponse","bearer_auth":"#/components/schemas/BearerAuthResponse","custom_header_auth":"#/components/schemas/CustomHeaderAuthResponse","mtls":"#/components/schemas/MTLSAuthResponse","oauth2_client_credentials":"#/components/schemas/OAuth2ClientCredsResponse","oauth2_jwt":"#/components/schemas/OAuth2JWTResponse","private_key_jwt":"#/components/schemas/PrivateKeyJWTResponse","refresh_token_auth":"#/components/schemas/RefreshTokenAuthResponse","slack_bot_auth":"#/components/schemas/SlackBotAuthResponse","url_secret":"#/components/schemas/UrlSecretAuthResponse","whatsapp_auth":"#/components/schemas/WhatsAppAuthResponse"}}},"title":"Auth Connections"}},"required":["auth_connections"],"title":"ListAuthConnectionsResponse"},"ListCalendarEventsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_calendar_events","const":"list_calendar_events","title":"Smb Tool Type"},"include_cancelled":{"type":"boolean","default":false,"title":"Include Cancelled"}},"title":"ListCalendarEventsParams"},"ListClientInteractionsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_client_interactions","const":"list_client_interactions","title":"Smb Tool Type"}},"title":"ListClientInteractionsParams"},"ListClientsParams":{"description":"List clients ordered by most recently updated, with an optional limit.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_clients","const":"list_clients","title":"Smb Tool Type"}},"title":"ListClientsParams"},"ListCrawlJobsResponseModel":{"type":"object","properties":{"crawl_jobs":{"type":"array","items":{"$ref":"#/components/schemas/GetCrawlJobResponseModel"},"title":"Crawl Jobs"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["crawl_jobs"],"title":"ListCrawlJobsResponseModel"},"ListCustomerFacingAgentsParams":{"description":"List every customer-facing agent on the workspace.\n\nThe assistant uses this whenever it needs to act on a specific customer-facing\nagent (rules, config edits, etc.) so it can pick the right ``agent_id`` to pass\nto mutating tools. Mirrors the ``list_services`` / ``list_clients``\npattern: read once, then mutate by id.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_customer_facing_agents","const":"list_customer_facing_agents","title":"Smb Tool Type"}},"title":"ListCustomerFacingAgentsParams"},"ListGroupSessionsParams":{"description":"List scheduled group sessions for a group service in a date range.\n\nGroup services are scheduled in advance (e.g. yoga classes, workshops) and\ncallers register against an existing session. Use this for group services;\nuse ``check_service_availability`` for appointment / rental services.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_group_sessions","const":"list_group_sessions","title":"Smb Tool Type"}},"title":"ListGroupSessionsParams"},"ListHolidaysParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_holidays","const":"list_holidays","title":"Smb Tool Type"}},"title":"ListHolidaysParams"},"ListLocationsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"list_locations","const":"list_locations","title":"Smb Tool Type"}},"title":"ListLocationsParams"},"ListMCPToolsResponseModel":{"description":"Response model for testing tools available on an MCP server.","type":"object","properties":{"success":{"description":"Indicates if the operation was successful.","type":"boolean","title":"Success"},"tools":{"description":"A list of tools available on the MCP server.","type":"array","items":{"$ref":"#/components/schemas/Tool"},"title":"Tools"},"error_message":{"description":"Error message if the operation was not successful.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"example":{"success":true,"tools":[{"description":"Gets current weather conditions for a location.","inputSchema":{"properties":{"latitude":{"description":"Latitude","type":"string"},"longitude":{"description":"Longitude","type":"string"}},"required":["latitude","longitude"],"type":"object"},"name":"weather_by_zapier_get_current"},{"description":"Description of tool2","inputSchema":{"properties":{},"type":"object"},"name":"tool2"}]},"required":["success","tools"],"title":"ListMCPToolsResponseModel"},"ListOrdersResponse":{"type":"object","properties":{"orders":{"description":"The list of orders matching the query.","type":"array","items":{"$ref":"#/components/schemas/OrderSummary"},"title":"Orders"}},"example":{"orders":[{"name":"Spanish Dubs","order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","state":"submitted","submitted_at":"2025-03-15T10:30:00Z","total_amount_usd":11,"updated_at":"2025-03-15T10:30:00Z"}]},"required":["orders"],"title":"ListOrdersResponse"},"ListProductsParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_products","const":"list_products","title":"Smb Tool Type"}},"title":"ListProductsParams"},"ListResponseMeta":{"type":"object","properties":{"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page"},"page_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Size"}},"title":"ListResponseMeta"},"ListResponse_AgentBranchSummary_":{"type":"object","properties":{"meta":{"default":{},"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/AgentBranchSummary"},"title":"Results"}},"required":["results"],"title":"ListResponse[AgentBranchSummary]"},"ListServicesParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_services","const":"list_services","title":"Smb Tool Type"}},"title":"ListServicesParams"},"ListSpeechEnginesResponse":{"type":"object","properties":{"speech_engines":{"description":"The speech engines matching the query","type":"array","items":{"$ref":"#/components/schemas/SpeechEngineSummaryResponse"},"title":"Speech Engines"},"next_cursor":{"description":"Cursor for fetching the next page","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more results","type":"boolean","title":"Has More"}},"example":{"has_more":false,"speech_engines":[{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"created_at_unix_secs":1714000000,"name":"My Speech Engine","speech_engine_id":"seng_3701k3ttaq12ewp8b7qv5rfyszkz","tags":["production","v1"]}]},"required":["speech_engines","has_more"],"title":"ListSpeechEnginesResponse"},"ListStaffParams":{"type":"object","properties":{"list_kwargs":{"type":"object","additionalProperties":true,"title":"List Kwargs"},"smb_tool_type":{"type":"string","default":"list_staff","const":"list_staff","title":"Smb Tool Type"}},"title":"ListStaffParams"},"ListTestsByIdsRequestModel":{"type":"object","properties":{"test_ids":{"description":"List of test IDs to fetch. No duplicates allowed. Prefer at most 1000 IDs per request.","type":"array","items":{"type":"string"},"examples":[["test_id_1","test_id_2"]],"title":"Test Ids"}},"required":["test_ids"],"title":"ListTestsByIdsRequestModel"},"ListWhatsAppAccountsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"title":"Items"}},"required":["items"],"title":"ListWhatsAppAccountsResponse"},"LiteralJsonSchemaProperty":{"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.","type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["boolean","string","integer","number"]},{"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2}],"title":"Type"},"description":{"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.","type":"string","default":"","title":"Description"},"enum":{"description":"List of allowed string values for string type parameters","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum"},"is_system_provided":{"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.","type":"boolean","default":false,"title":"Is System Provided"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"allowed_values_dynamic_variable":{"description":"When set, the LLM provides the value but the runtime rejects any value not present in the list held by this dynamic variable. 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.","type":"string","default":"","title":"Allowed Values Dynamic Variable"},"constant_value":{"description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted.","default":"","anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}],"title":"Constant Value"},"is_omitted":{"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.","type":"boolean","default":false,"title":"Is Omitted"}},"example":{"description":"A user-provided message","type":"string"},"required":["type"],"title":"LiteralJsonSchemaProperty"},"LivekitStackType":{"type":"string","default":"standard","enum":["standard","static"],"title":"LivekitStackType"},"LoadMemoryEntryToolErrorStatus":{"type":"string","enum":["not_found","invalid_id"]},"LoadableMemoryEntry":{"type":"object","properties":{"entry_id":{"type":"string","title":"Entry Id"},"summary":{"type":"string","title":"Summary"},"text":{"type":"string","title":"Text"}},"required":["entry_id","summary","text"],"title":"LoadableMemoryEntry"},"LockReason":{"type":"string","enum":["trial_ended","subscription_downgrade","exposed_publicly","self_disabled"],"title":"LockReason"},"MCPApprovalPolicy":{"description":"Defines the MCP server-level approval policy for tool execution.","type":"string","default":"require_approval_all","enum":["auto_approve_all","require_approval_all","require_approval_per_tool"],"title":"MCPApprovalPolicy"},"MCPApprovalPolicyUpdateRequestModel":{"description":"Request model for updating MCP Server approval mode.","type":"object","properties":{"approval_policy":{"description":"The approval mode to set for the MCP server","$ref":"#/components/schemas/MCPApprovalPolicy"}},"required":["approval_policy"],"title":"MCPApprovalPolicyUpdateRequestModel"},"MCPServerConfig-Input":{"type":"object","properties":{"approval_policy":{"default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"tool_approval_hashes":{"description":"List of tool approval hashes for per-tool approval when approval_policy is REQUIRE_APPROVAL_PER_TOOL","type":"array","items":{"$ref":"#/components/schemas/MCPToolApprovalHash"},"title":"Tool Approval Hashes"},"transport":{"description":"The transport type used to connect to the MCP server","default":"SSE","$ref":"#/components/schemas/MCPServerTransport"},"url":{"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","anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"}],"title":"Url"},"secret_token":{"description":"The secret token (Authorization header) stored as a workspace secret or in-place secret","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIUserSecretDBModel"},{"type":"null"}],"title":"Secret Token"},"request_headers":{"description":"The headers included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"auth_connection":{"description":"Optional auth connection to use for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"},"name":{"type":"string","title":"Name"},"description":{"type":"string","default":"","title":"Description"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, all tools from this MCP server will require pre-tool execution speech.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"disable_interruptions":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}]},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play for all tools from this MCP server","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"tool_config_overrides":{"description":"List of per-tool configuration overrides that override the server-level defaults for specific tools","type":"array","items":{"$ref":"#/components/schemas/MCPToolConfigOverride-Input"},"title":"Tool Config Overrides"},"disable_compression":{"description":"Whether to disable HTTP compression for this MCP server. Enable this if the server does not support compressed responses.","type":"boolean","default":false,"title":"Disable Compression"}},"required":["url","name"],"title":"MCPServerConfig"},"MCPServerConfig-Output":{"type":"object","properties":{"approval_policy":{"default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"tool_approval_hashes":{"description":"List of tool approval hashes for per-tool approval when approval_policy is REQUIRE_APPROVAL_PER_TOOL","type":"array","items":{"$ref":"#/components/schemas/MCPToolApprovalHash"},"title":"Tool Approval Hashes"},"transport":{"description":"The transport type used to connect to the MCP server","default":"SSE","$ref":"#/components/schemas/MCPServerTransport"},"url":{"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","anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"}],"title":"Url"},"secret_token":{"description":"The secret token (Authorization header) stored as a workspace secret or in-place secret","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIUserSecretDBModel"},{"type":"null"}],"title":"Secret Token"},"request_headers":{"description":"The headers included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"auth_connection":{"description":"Optional auth connection to use for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"},"name":{"type":"string","title":"Name"},"description":{"type":"string","default":"","title":"Description"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, all tools from this MCP server will require pre-tool execution speech.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"disable_interruptions":{"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.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}]},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play for all tools from this MCP server","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"tool_config_overrides":{"description":"List of per-tool configuration overrides that override the server-level defaults for specific tools","type":"array","items":{"$ref":"#/components/schemas/MCPToolConfigOverride-Output"},"title":"Tool Config Overrides"},"disable_compression":{"description":"Whether to disable HTTP compression for this MCP server. Enable this if the server does not support compressed responses.","type":"boolean","default":false,"title":"Disable Compression"}},"required":["url","name"],"title":"MCPServerConfig"},"MCPServerConfigUpdateRequestModel":{"description":"Unified request model for updating MCP Server configuration.","type":"object","properties":{"approval_policy":{"description":"The approval mode to set for the MCP server","anyOf":[{"$ref":"#/components/schemas/MCPApprovalPolicy"},{"type":"null"}]},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}]},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play for all tools from this MCP server","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"The maximum time in seconds to wait for each MCP tool call to complete.","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"request_headers":{"description":"The headers to include in requests to the MCP server","anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"type":"object"},{"type":"null"}],"title":"Request Headers"},"disable_compression":{"description":"Whether to disable HTTP compression for this MCP server","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disable Compression"},"secret_token":{"description":"Optional secret token for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/ConvAISecretLocator"},{"type":"null"}]},"auth_connection":{"description":"Optional auth connection to use for authentication with this MCP server","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"}},"title":"MCPServerConfigUpdateRequestModel"},"MCPServerMetadataResponseModel":{"type":"object","properties":{"created_at":{"type":"integer","title":"Created At"},"owner_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner User Id"}},"required":["created_at"],"title":"MCPServerMetadataResponseModel"},"MCPServerRequestModel":{"description":"Request model for creating/updating an MCP Server configuration.","type":"object","properties":{"config":{"description":"Configuration details for the MCP Server.","$ref":"#/components/schemas/MCPServerConfig-Input"}},"required":["config"],"title":"MCPServerRequestModel"},"MCPServerResponseModel":{"description":"Response model representing an MCP Server configuration.","type":"object","properties":{"id":{"type":"string","title":"Id"},"config":{"$ref":"#/components/schemas/MCPServerConfig-Output"},"access_info":{"description":"The access information of the MCP Server","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"dependent_agents":{"description":"List of agents that depend on this MCP Server.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DependentAvailableAgentIdentifier"},{"$ref":"#/components/schemas/DependentUnknownAgentIdentifier"}],"discriminator":{"propertyName":"type","mapping":{"available":"#/components/schemas/DependentAvailableAgentIdentifier","unknown":"#/components/schemas/DependentUnknownAgentIdentifier"}}},"title":"Dependent Agents"},"metadata":{"description":"The metadata of the MCP Server","$ref":"#/components/schemas/MCPServerMetadataResponseModel"}},"required":["id","config","metadata"],"title":"MCPServerResponseModel"},"MCPServerTransport":{"description":"Supported MCP server transport types.","type":"string","default":"SSE","enum":["SSE","STREAMABLE_HTTP"],"title":"MCPServerTransport"},"MCPServersResponseModel":{"description":"Response model for a list of MCP Server configurations.","type":"object","properties":{"mcp_servers":{"type":"array","items":{"$ref":"#/components/schemas/MCPServerResponseModel"},"title":"Mcp Servers"}},"required":["mcp_servers"],"title":"MCPServersResponseModel"},"MCPToolAddApprovalRequestModel":{"description":"Request model for adding approval for a single MCP tool.","type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"tool_description":{"description":"The description of the MCP tool","type":"string","title":"Tool Description"},"input_schema":{"description":"The input schema of the MCP tool (the schema defined on the MCP server before ElevenLabs does any extra processing)","type":"object","additionalProperties":true,"title":"Input Schema"},"approval_policy":{"description":"The tool-level approval policy","default":"requires_approval","$ref":"#/components/schemas/MCPToolApprovalPolicy"}},"required":["tool_name","tool_description"],"title":"MCPToolAddApprovalRequestModel"},"MCPToolApprovalHash":{"description":"Model for storing tool approval hashes for per-tool approval.","type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"tool_hash":{"description":"SHA256 hash of the tool's parameters and description","type":"string","title":"Tool Hash"},"approval_policy":{"description":"The approval policy for this tool","default":"requires_approval","$ref":"#/components/schemas/MCPToolApprovalPolicy"}},"required":["tool_name","tool_hash"],"title":"MCPToolApprovalHash"},"MCPToolApprovalPolicy":{"description":"Defines the tool-level approval policy.","type":"string","default":"requires_approval","enum":["auto_approved","requires_approval"],"title":"MCPToolApprovalPolicy"},"MCPToolConfig-Input":{"description":"An MCP tool configuration that can be used to call MCP servers","type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"integration_type":{"description":"The type of MCP tool","$ref":"#/components/schemas/IntegrationType"},"parameters":{"description":"Schema for any parameters the LLM needs to provide to the MCP tool.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"approval_policy":{"description":"The approval policy for the MCP tool","default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"mcp_tool_name":{"description":"The name of the MCP tool to call","type":"string","title":"Mcp Tool Name"},"mcp_tool_description":{"description":"The description of the MCP tool to call","type":"string","title":"Mcp Tool Description"},"mcp_server_id":{"description":"The id of the MCP server to call","type":"string","title":"Mcp Server Id"},"mcp_server_name":{"description":"The name of the MCP server to call","type":"string","title":"Mcp Server Name"},"mcp_input_schema":{"description":"Original inputSchema dict for consistent hashing","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mcp Input Schema"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"input_overrides":{"description":"Input parameter overrides for this tool","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"}},"required":["name","description","integration_type","mcp_tool_name","mcp_tool_description","mcp_server_id","mcp_server_name"],"title":"MCPToolConfig","x-fern-ignore":true},"MCPToolConfig-Output":{"description":"An MCP tool configuration that can be used to call MCP servers","type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the MCP tool call to complete. Must be between 5 and 300 seconds (inclusive).","type":"integer","default":30,"maximum":300,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"integration_type":{"description":"The type of MCP tool","$ref":"#/components/schemas/IntegrationType"},"parameters":{"description":"Schema for any parameters the LLM needs to provide to the MCP tool.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"approval_policy":{"description":"The approval policy for the MCP tool","default":"require_approval_all","$ref":"#/components/schemas/MCPApprovalPolicy"},"mcp_tool_name":{"description":"The name of the MCP tool to call","type":"string","title":"Mcp Tool Name"},"mcp_tool_description":{"description":"The description of the MCP tool to call","type":"string","title":"Mcp Tool Description"},"mcp_server_id":{"description":"The id of the MCP server to call","type":"string","title":"Mcp Server Id"},"mcp_server_name":{"description":"The name of the MCP server to call","type":"string","title":"Mcp Server Name"},"mcp_input_schema":{"description":"Original inputSchema dict for consistent hashing","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mcp Input Schema"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"input_overrides":{"description":"Input parameter overrides for this tool","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"}},"required":["name","description","integration_type","mcp_tool_name","mcp_tool_description","mcp_server_id","mcp_server_name"],"title":"MCPToolConfig","x-fern-ignore":true},"MCPToolConfigOverride-Input":{"type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool (seconds).","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["tool_name"],"title":"MCPToolConfigOverride"},"MCPToolConfigOverride-Output":{"type":"object","properties":{"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool (seconds).","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Output"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["tool_name"],"title":"MCPToolConfigOverride"},"MCPToolConfigOverrideCreateRequestModel":{"type":"object","properties":{"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool.","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","anyOf":[{"items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"type":"array"},{"type":"null"}],"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"},"tool_name":{"description":"The name of the MCP tool","type":"string","title":"Tool Name"}},"required":["tool_name"],"title":"MCPToolConfigOverrideCreateRequestModel"},"MCPToolConfigOverrideUpdateRequestModel":{"type":"object","properties":{"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"description":"If set, overrides the server's pre_tool_speech setting for this tool.","anyOf":[{"$ref":"#/components/schemas/PreToolSpeechMode"},{"type":"null"}]},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","anyOf":[{"type":"boolean"},{"type":"null"}],"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"description":"If set, overrides the server's interruption_mode setting for this tool.","anyOf":[{"$ref":"#/components/schemas/ToolInterruptionMode"},{"type":"null"}]},"tool_call_sound":{"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).","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","const":"off"},{"type":"null"}],"title":"Tool Call Sound"},"tool_call_sound_behavior":{"description":"If set, overrides the server's tool_call_sound_behavior setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundBehavior"},{"type":"null"}]},"execution_mode":{"description":"If set, overrides the server's execution_mode setting for this tool","anyOf":[{"$ref":"#/components/schemas/ToolExecutionMode"},{"type":"null"}]},"response_timeout_secs":{"description":"If set, overrides the server's response timeout for this MCP tool.","anyOf":[{"type":"integer","maximum":300,"minimum":5},{"type":"null"}],"title":"Response Timeout Secs"},"assignments":{"description":"Dynamic variable assignments for this MCP tool","anyOf":[{"items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"type":"array"},{"type":"null"}],"title":"Assignments"},"input_overrides":{"description":"Mapping of json path to input override configuration","anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/ConstantSchemaOverride"},{"$ref":"#/components/schemas/DynamicVariableSchemaOverride"},{"$ref":"#/components/schemas/LLMSchemaOverride"},{"$ref":"#/components/schemas/OmitSchemaOverride"}],"discriminator":{"propertyName":"source","mapping":{"constant":"#/components/schemas/ConstantSchemaOverride","dynamic_variable":"#/components/schemas/DynamicVariableSchemaOverride","llm":"#/components/schemas/LLMSchemaOverride","omit":"#/components/schemas/OmitSchemaOverride"}}},"type":"object"},{"type":"null"}],"title":"Input Overrides"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"title":"MCPToolConfigOverrideUpdateRequestModel"},"MTLSAuthResponse":{"description":"Response model for mTLS auth connections.","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"mtls","const":"mtls","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","id"],"title":"MTLSAuthResponse"},"ManualSource":{"type":"object","properties":{"type":{"type":"string","default":"manual","const":"manual","title":"Type"},"created_by_user_id":{"type":"string","title":"Created By User Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"required":["created_by_user_id"],"title":"ManualSource"},"ManualVerificationFileResponseModel":{"type":"object","properties":{"file_id":{"description":"The ID of the file.","type":"string","title":"File Id"},"file_name":{"description":"The name of the file.","type":"string","title":"File Name"},"mime_type":{"description":"The MIME type of the file.","type":"string","title":"Mime Type"},"size_bytes":{"description":"The size of the file in bytes.","type":"integer","title":"Size Bytes"},"upload_date_unix":{"description":"The date of the file in Unix time.","type":"integer","title":"Upload Date Unix"}},"example":{"file_id":"CwhRBWXzGAHq8TQ4Fs18","file_name":"file.mp3","mime_type":"audio/mpeg","size_bytes":1000000,"upload_date_unix":1714204800},"required":["file_id","file_name","mime_type","size_bytes","upload_date_unix"],"title":"ManualVerificationFileResponseModel","x-fern-type-name":"ManualVerificationFileResponse"},"ManualVerificationResponseModel":{"type":"object","properties":{"extra_text":{"description":"The extra text of the manual verification.","type":"string","title":"Extra Text"},"request_time_unix":{"description":"The date of the manual verification in Unix time.","type":"integer","title":"Request Time Unix"},"files":{"description":"The files of the manual verification.","type":"array","items":{"$ref":"#/components/schemas/ManualVerificationFileResponseModel"},"title":"Files"}},"example":{"extra_text":"Please verify the voice is that of a female.","files":[{"file_id":"CwhRBWXzGAHq8TQ4Fs18","file_name":"file.mp3","mime_type":"audio/mpeg","size_bytes":1000000,"upload_date_unix":1714204800}],"request_time_unix":1714204800},"required":["extra_text","request_time_unix","files"],"title":"ManualVerificationResponseModel","x-fern-type-name":"ManualVerificationResponse"},"MatchAnythingParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"anything","title":"Type"}},"required":["type"],"title":"MatchAnythingParameterEvaluationStrategy"},"MediaCodec":{"type":"string","enum":["G722/8000","PCMU/8000","PCMA/8000"],"title":"MediaCodec"},"MediaId":{"type":"string","pattern":"^prodmedia_[a-z0-9]{26}$"},"MemoryEntrySearchResult":{"type":"object","properties":{"entry_id":{"type":"string","title":"Entry Id"},"version":{"type":"integer","title":"Version"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"source":{"anyOf":[{"$ref":"#/components/schemas/ConversationSource"},{"$ref":"#/components/schemas/ManualSource"},{"type":"null"}],"title":"Source"}},"required":["entry_id","version"],"title":"MemoryEntrySearchResult"},"MergePreviewResponseModel":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"name":{"description":"The name of the agent","type":"string","title":"Name"},"conversation_config":{"description":"The conversation configuration of the agent","$ref":"#/components/schemas/ConversationalConfigAPIModel-Output"},"metadata":{"description":"The metadata of the agent","$ref":"#/components/schemas/AgentMetadataResponseModel"},"platform_settings":{"description":"The platform settings of the agent","$ref":"#/components/schemas/AgentPlatformSettingsResponseModel"},"phone_numbers":{"description":"The phone numbers of the agent","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/GetPhoneNumberTwilioResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberExotelResponseModel"},{"$ref":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel"}],"discriminator":{"propertyName":"provider","mapping":{"exotel":"#/components/schemas/GetPhoneNumberExotelResponseModel","sip_trunk":"#/components/schemas/GetPhoneNumberSIPTrunkResponseModel","twilio":"#/components/schemas/GetPhoneNumberTwilioResponseModel"}}},"title":"Phone Numbers"},"whatsapp_accounts":{"description":"WhatsApp accounts assigned to the agent","type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"title":"Whatsapp Accounts"},"workflow":{"description":"The workflow of the agent","$ref":"#/components/schemas/AgentWorkflowResponseModel"},"access_info":{"description":"The access information of the agent for the user","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"tags":{"description":"Agent tags used to categorize the agent","type":"array","items":{"type":"string"},"title":"Tags"},"version_id":{"description":"The ID of the version the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"branch_id":{"description":"The ID of the branch the agent is on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"main_branch_id":{"description":"The ID of the main branch for this agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Branch Id"},"overridden_fields":{"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.","type":"array","items":{"type":"string"},"title":"Overridden Fields"},"source_identical_to_target":{"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.","type":"boolean","default":false,"title":"Source Identical To Target"}},"example":{"agent_id":"agent_7101k5zvyjhmfg983brhmhkd98n6","name":"My Agent","workflow":{"edges":{"entry_to_tool_a":{"forward_condition":{"condition":"Tool A condition","type":"llm"},"source":"entry_node","target":"tool_node_a"},"start_to_entry":{"forward_condition":{"type":"unconditional"},"source":"start_node","target":"entry_node"},"tool_a_to_failure":{"forward_condition":{"successful":false,"type":"result"},"source":"tool_node_a","target":"failure_node"},"tool_a_to_tool_b":{"forward_condition":{"successful":true,"type":"result"},"source":"tool_node_a","target":"tool_node_b"},"tool_b_to_agent_transfer":{"forward_condition":{"type":"unconditional"},"source":"tool_node_b","target":"success_transfer"},"tool_b_to_conversation":{"forward_condition":{"condition":"Conversation condition","type":"llm"},"source":"tool_node_b","target":"success_conversation"},"tool_b_to_end":{"forward_condition":{"condition":"End condition","type":"llm"},"source":"tool_node_b","target":"success_end"},"tool_b_to_phone":{"forward_condition":{"expression":{"children":[{"name":"force_phone_transfer","type":"dynamic_variable"},{"prompt":"Phone condition","type":"llm","value_schema":{"description":"Phone condition","type":"boolean"}},{"left":{"name":"mode","type":"dynamic_variable"},"right":{"type":"string_literal","value":"dev"},"type":"eq_operator"}],"type":"or_operator"},"type":"expression"},"source":"tool_node_b","target":"success_phone"}},"nodes":{"entry_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":["entry_to_tool_a"],"entry_behavior":"auto","label":"Entry","position":{"x":0,"y":0},"type":"override_agent"},"failure_node":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Failure","position":{"x":0,"y":0},"type":"override_agent"},"start_node":{"edge_order":["start_to_entry"],"position":{"x":0,"y":0},"type":"start"},"success_conversation":{"additional_knowledge_base":[],"additional_prompt":"","additional_tool_ids":[],"conversation_config":{},"edge_order":[],"entry_behavior":"auto","label":"Success A","position":{"x":0,"y":0},"type":"override_agent"},"success_end":{"edge_order":[],"position":{"x":0,"y":0},"return_when_nested":true,"type":"end"},"success_phone":{"custom_sip_headers":[],"edge_order":[],"position":{"x":0,"y":0},"require_acceptance":false,"transfer_destination":{"phone_number":"+1234567890","type":"phone"},"transfer_type":"conference","type":"phone_number"},"success_transfer":{"agent_id":"success_transfer_agent","delay_ms":0,"edge_order":[],"enable_nesting":false,"enable_transferred_agent_first_message":false,"position":{"x":0,"y":0},"preserve_client_tts_overrides":false,"type":"standalone_agent"},"tool_node_a":{"edge_order":["tool_a_to_failure","tool_a_to_tool_b"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"},{"tool_id":"tool_b"}],"type":"tool"},"tool_node_b":{"edge_order":["tool_b_to_conversation","tool_b_to_end","tool_b_to_phone","tool_b_to_agent_transfer"],"position":{"x":0,"y":0},"tools":[{"tool_id":"tool_a"}],"type":"tool"}},"prevent_subagent_loops":false}},"required":["agent_id","name","conversation_config","metadata"],"title":"MergePreviewResponseModel"},"MessageSearchSortBy":{"type":"string","enum":["search_score","created_at"],"title":"MessageSearchSortBy"},"MessagesSearchResponse":{"type":"object","properties":{"meta":{"default":{},"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/MessagesSearchResult"},"title":"Results"},"next_cursor":{"description":"Cursor for the next page of results","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether there are more results available","type":"boolean","title":"Has More"}},"required":["results","has_more"],"title":"MessagesSearchResponse"},"MessagesSearchResult":{"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","type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"transcript_index":{"type":"integer","title":"Transcript Index"},"chunk_text":{"type":"string","title":"Chunk Text"},"chunk_highlights":{"anyOf":[{"items":{"$ref":"#/components/schemas/SearchHighlightSegment"},"type":"array"},{"type":"null"}],"title":"Chunk Highlights"},"score":{"type":"number","title":"Score"},"conversation_start_time_unix_secs":{"type":"integer","title":"Conversation Start Time Unix Secs"}},"required":["conversation_id","agent_id","transcript_index","chunk_text","score","conversation_start_time_unix_secs"],"title":"MessagesSearchResult"},"MetricRecord":{"type":"object","properties":{"elapsed_time":{"type":"number","title":"Elapsed Time"}},"required":["elapsed_time"],"title":"MetricRecord"},"MetricType":{"type":"string","enum":["credits","tts_characters","minutes_used","request_count","ttfb_avg","ttfb_p95","fiat_units_spent","concurrency","concurrency_average"],"title":"MetricType"},"MockNoMatchBehavior":{"type":"string","default":"raise_error","enum":["call_real_tool","raise_error"],"title":"MockNoMatchBehavior"},"MockingStrategy":{"type":"string","default":"none","enum":["all","selected","none"],"title":"MockingStrategy"},"ModelRatesResponseModel":{"type":"object","properties":{"character_cost_multiplier":{"description":"The cost multiplier for characters.","type":"number","title":"Character Cost Multiplier"},"cost_discount_multiplier":{"description":"Discount multiplier applied to cost estimates. Defaults to 1.0 (no discount).","type":"number","default":1,"title":"Cost Discount Multiplier"}},"example":{"character_cost_multiplier":1,"cost_discount_multiplier":1},"required":["character_cost_multiplier"],"title":"ModelRatesResponseModel"},"ModelResponseModel":{"type":"object","properties":{"model_id":{"description":"The unique identifier of the model.","type":"string","title":"Model Id"},"name":{"description":"The name of the model.","type":"string","title":"Name"},"can_be_finetuned":{"description":"Whether the model can be finetuned.","type":"boolean","title":"Can Be Finetuned"},"can_do_text_to_speech":{"description":"Whether the model can do text-to-speech.","type":"boolean","title":"Can Do Text To Speech"},"can_do_voice_conversion":{"description":"Whether the model can do voice conversion.","type":"boolean","title":"Can Do Voice Conversion"},"can_use_style":{"description":"Whether the model can use style.","type":"boolean","title":"Can Use Style"},"can_use_speaker_boost":{"description":"Whether the model can use speaker boost.","type":"boolean","title":"Can Use Speaker Boost"},"serves_pro_voices":{"description":"Whether the model serves pro voices.","type":"boolean","title":"Serves Pro Voices"},"token_cost_factor":{"description":"The cost factor for the model.","type":"number","title":"Token Cost Factor"},"description":{"description":"The description of the model.","type":"string","title":"Description"},"requires_alpha_access":{"description":"Whether the model requires alpha access.","type":"boolean","title":"Requires Alpha Access"},"max_characters_request_free_user":{"description":"The maximum number of characters that can be requested by a free user.","type":"integer","title":"Max Characters Request Free User"},"max_characters_request_subscribed_user":{"description":"The maximum number of characters that can be requested by a subscribed user.","type":"integer","title":"Max Characters Request Subscribed User"},"maximum_text_length_per_request":{"description":"The maximum length of text that can be requested for this model.","type":"integer","title":"Maximum Text Length Per Request"},"languages":{"description":"The languages supported by the model.","type":"array","items":{"$ref":"#/components/schemas/LanguageResponseModel"},"title":"Languages"},"model_rates":{"description":"The rates for the model.","$ref":"#/components/schemas/ModelRatesResponseModel"},"concurrency_group":{"description":"The concurrency group for the model.","type":"string","title":"Concurrency Group"}},"example":{"can_be_finetuned":true,"can_do_text_to_speech":true,"can_do_voice_conversion":true,"can_use_speaker_boost":true,"can_use_style":true,"concurrency_group":"standard_eleven_multilingual_v2","description":"Our state of the art multilingual speech synthesis model, able to generate life-like speech in 29 languages.","languages":[{"language_id":"en","name":"English"}],"max_characters_request_free_user":2500,"max_characters_request_subscribed_user":5000,"maximum_text_length_per_request":1000000,"model_id":"eleven_multilingual_v2","model_rates":{"character_cost_multiplier":1,"cost_discount_multiplier":1},"name":"Eleven Multilingual v2","requires_alpha_access":false,"serves_pro_voices":false,"token_cost_factor":1},"required":["model_id"],"title":"ModelResponseModel","x-fern-type-name":"Model"},"ModelSettingsResponseModel":{"type":"object","properties":{"stability":{"description":"Determines how stable the voice is and the randomness between each generation. Lower values introduce broader emotional range for the voice. Higher values can result in a monotonous voice with limited emotion.","default":0.5,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"}},"example":{"stability":0.5},"title":"ModelSettingsResponseModel"},"ModerationConfig":{"type":"object","properties":{"sexual":{"$ref":"#/components/schemas/ThresholdGuardrail"},"violence":{"$ref":"#/components/schemas/ThresholdGuardrail"},"violence_graphic":{"$ref":"#/components/schemas/ThresholdGuardrail"},"harassment":{"$ref":"#/components/schemas/ThresholdGuardrail"},"harassment_threatening":{"$ref":"#/components/schemas/ThresholdGuardrail"},"hate":{"$ref":"#/components/schemas/ThresholdGuardrail"},"hate_threatening":{"$ref":"#/components/schemas/ThresholdGuardrail"},"self_harm_instructions":{"$ref":"#/components/schemas/ThresholdGuardrail"},"self_harm":{"$ref":"#/components/schemas/ThresholdGuardrail"},"self_harm_intent":{"$ref":"#/components/schemas/ThresholdGuardrail"},"sexual_minors":{"$ref":"#/components/schemas/ThresholdGuardrail"}},"title":"ModerationConfig"},"ModerationGuardrail-Input":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ModerationConfig"}},"title":"ModerationGuardrail"},"ModerationGuardrail-Output":{"type":"object","properties":{"execution_mode":{"default":"streaming","$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ModerationConfig"}},"title":"ModerationGuardrail"},"MultichannelSpeechToTextResponseModel":{"description":"Response model for multichannel speech-to-text transcription.","type":"object","properties":{"transcripts":{"description":"List of transcripts, one for each audio channel. Each transcript contains the text and word-level details for its respective channel.","type":"array","items":{"$ref":"#/components/schemas/SpeechToTextChunkResponseModel"},"title":"Transcripts"},"transcription_id":{"description":"The transcription ID of the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcription Id"},"audio_duration_secs":{"description":"The duration of the audio that was transcribed across all channels in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Audio Duration Secs"}},"example":{"transcripts":[{"language_code":"en","language_probability":0.98,"text":"Hello from channel one.","words":[{"end":0.5,"logprob":-0.124,"speaker_id":"speaker_0","start":0,"text":"Hello","type":"word"},{"end":0.5,"logprob":0,"speaker_id":"speaker_0","start":0.5,"text":" ","type":"spacing"},{"end":0.8,"logprob":-0.089,"speaker_id":"speaker_0","start":0.5,"text":"from","type":"word"}]},{"language_code":"en","language_probability":0.97,"text":"Greetings from channel two.","words":[{"end":0.7,"logprob":-0.156,"speaker_id":"speaker_1","start":0.1,"text":"Greetings","type":"word"},{"end":0.7,"logprob":0,"speaker_id":"speaker_1","start":0.7,"text":" ","type":"spacing"},{"end":1,"logprob":-0.078,"speaker_id":"speaker_1","start":0.7,"text":"from","type":"word"}]}]},"required":["transcripts"],"title":"MultichannelSpeechToTextResponseModel"},"MultipartMusicResponse":{"description":"Multipart response structure with JSON metadata and binary audio","type":"object","properties":{"metadata":{"description":"JSON metadata about the generated audio","$ref":"#/components/schemas/DetailedMusicResponse"},"audio":{"description":"Binary audio data in the requested format","type":"string","format":"binary","title":"Audio"}},"example":{"audio":"[binary audio data]","metadata":{"composition_plan":{"negative_global_styles":["metal","hip-hop","country"],"positive_global_styles":["pop","rock","jazz"],"sections":[{"duration_ms":10000,"lines":["Verse 1 lyrics"],"negative_local_styles":["metal","hip-hop","country"],"positive_local_styles":["pop","rock","jazz"],"section_name":"Verse 1"}]},"song_metadata":{"description":"My Song Description","genres":["pop","rock","jazz"],"is_explicit":false,"languages":["en","fr"],"title":"My Song"},"words_timestamps":[{"end_ms":1000,"start_ms":0,"word":"Verse"},{"end_ms":2000,"start_ms":1000,"word":"1"},{"end_ms":3000,"start_ms":2000,"word":"lyrics"}]}},"required":["metadata","audio"],"title":"MultipartMusicResponse"},"MusicAllowedOutputFormats":{"anyOf":[{"$ref":"#/components/schemas/AllowedOutputFormats"},{"$ref":"#/components/schemas/MusicOnlyOutputFormats"}]},"MusicExploreSongSourceContext":{"type":"object","properties":{"source_type":{"type":"string","default":"music_explore_song","const":"music_explore_song","title":"Source Type"},"music_explore_song_id":{"type":"string","title":"Music Explore Song Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"vocals":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vocals"},"lyrics":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics"}},"required":["music_explore_song_id"],"title":"MusicExploreSongSourceContext"},"MusicFinetuneFailureReason":{"type":"string","enum":["audio_processing_failed","copyright_violation","training_failed"],"title":"MusicFinetuneFailureReason"},"MusicFinetunePageResponseModel":{"type":"object","properties":{"finetunes":{"description":"The finetunes in this page.","type":"array","items":{"$ref":"#/components/schemas/MusicFinetuneResponseModel"},"title":"Finetunes"},"next_cursor":{"description":"Cursor to pass as `cursor` to fetch the next page; `null` when there are no more results.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"description":"Whether more finetunes are available beyond this page.","type":"boolean","title":"Has More"}},"required":["finetunes","next_cursor","has_more"],"title":"MusicFinetunePageResponseModel"},"MusicFinetuneResponseModel":{"type":"object","properties":{"id":{"description":"Unique identifier of the finetune.","type":"string","title":"Id"},"name":{"description":"Name of the finetune.","type":"string","title":"Name"},"tags":{"description":"Tags associated with the finetune.","type":"array","items":{"type":"string"},"title":"Tags"},"primary_genre":{"description":"Primary musical genre of the finetune.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Genre"},"model_id":{"description":"The base music model the finetune was trained on.","type":"string","examples":["music_v1","music_v2"],"title":"Model Id"},"created_at":{"description":"When the finetune was created (UTC).","type":"string","format":"date-time","title":"Created At"},"visibility":{"description":"Who can access this finetune: `private` (only you), `workspace` (members of your workspace), `public` (ElevenLabs-curated, available to everyone).","$ref":"#/components/schemas/FinetuneVisibility"},"created_by":{"description":"Who created the finetune: `self`, `workspace`, or `elevenlabs`.","$ref":"#/components/schemas/FinetuneCreatedBy"},"status":{"description":"Training lifecycle status: pending, in_progress, completed, failed, and blocked.","$ref":"#/components/schemas/MusicFinetuneStatus"},"training_progress":{"description":"Training progress from 0.0 to 1.0.","type":"number","title":"Training Progress"},"failure_reason":{"description":"Reason the finetune failed or was blocked, if applicable.","anyOf":[{"$ref":"#/components/schemas/MusicFinetuneFailureReason"},{"type":"null"}]}},"required":["id","name","tags","model_id","created_at","visibility","created_by","status","training_progress"],"title":"MusicFinetuneResponseModel"},"MusicFinetuneStatus":{"type":"string","enum":["pending","in_progress","completed","failed","blocked"],"title":"MusicFinetuneStatus"},"MusicGenerationMode":{"type":"string","enum":["track","loop","ambience","video_to_music"],"title":"MusicGenerationMode"},"MusicOnlyOutputFormats":{"type":"string","enum":["mp3_48000_128","mp3_48000_192","mp3_48000_240","mp3_48000_320"]},"MusicOutputFormat":{"anyOf":[{"$ref":"#/components/schemas/MusicAllowedOutputFormats"},{"type":"string","const":"auto"}]},"MusicPrompt":{"description":"Composition plan for the `music_v1` model. Using this field with any other model will result in an error.","type":"object","properties":{"positive_global_styles":{"description":"The styles and musical directions that should be present in the entire song. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Global Styles"},"negative_global_styles":{"description":"The styles and musical directions that should not be present in the entire song. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Global Styles"},"sections":{"description":"The sections of the song.","type":"array","items":{"$ref":"#/components/schemas/SongSection"},"maxItems":30,"title":"Sections"}},"example":{"negative_global_styles":["metal","hip-hop","country"],"positive_global_styles":["pop","rock","jazz"],"sections":[{"duration_ms":10000,"lines":["Verse 1 lyrics"],"negative_local_styles":["metal","hip-hop","country"],"positive_local_styles":["pop","rock","jazz"],"section_name":"Verse 1"}]},"required":["positive_global_styles","negative_global_styles","sections"],"title":"MusicPrompt"},"MusicUploadResponse":{"description":"Response model for music upload endpoint.","type":"object","properties":{"song_id":{"description":"Unique identifier for the uploaded song","type":"string","title":"Song Id"},"composition_plan":{"description":"The composition plan extracted from the uploaded song. Only present if `extract_composition_plan` was provided in the request body.","anyOf":[{"$ref":"#/components/schemas/MusicPrompt"},{"$ref":"#/components/schemas/CompositionPlan"},{"type":"null"}],"title":"Composition Plan"},"words_timestamps":{"description":"Word-level timestamps transcribed from the uploaded song. Only present if `with_timestamps` was True in the request body","anyOf":[{"items":{"$ref":"#/components/schemas/WordTimestamp"},"type":"array"},{"type":"null"}],"title":"Words Timestamps"}},"example":{"song_id":"jR4Xz8kL2mNpQ9wVtY1b"},"required":["song_id"],"title":"MusicUploadResponse"},"NonStreamingOutputFormats":{"type":"string","enum":["wav_8000","wav_16000","wav_22050","wav_24000","wav_32000","wav_44100","wav_48000"]},"NumericDistributionAggregate":{"type":"object","properties":{"count":{"type":"integer","default":0,"title":"Count"},"sum":{"type":"number","default":0,"title":"Sum"},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max"}},"title":"NumericDistributionAggregate"},"OAuth2ClientCredsResponse":{"description":"Response model for oauth2 client creds","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_client_credentials","const":"oauth2_client_credentials","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_id":{"type":"string","title":"Client Id"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"default":[],"title":"Scopes"},"extra_params":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Extra Params"},"basic_auth_in_header":{"description":"If True, send client credentials in Authorization header as Basic Auth instead of request body","type":"boolean","default":false,"title":"Basic Auth In Header"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"},"custom_headers":{"description":"Custom headers configured for OAuth2 token requests","type":"object","additionalProperties":{"type":"string"},"title":"Custom Headers"}},"required":["name","provider","client_id","token_url","id"],"title":"OAuth2ClientCredsResponse"},"OAuth2JWTResponse":{"description":"Response model for OAuth2 JWT auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"oauth2_jwt","const":"oauth2_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"token_url":{"description":"Token endpoint URL for exchanging JWT for access token","type":"string","title":"Token Url"},"scopes":{"description":"OAuth2 scopes to request when exchanging JWT for access token","type":"array","items":{"type":"string"},"title":"Scopes"},"token_response_field":{"description":"Token field to extract from the token endpoint response.","type":"string","default":"access_token","enum":["access_token","id_token"],"title":"Token Response Field"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","issuer","audience","subject","token_url","id"],"title":"OAuth2JWTResponse"},"ObjectJsonSchemaProperty-Input":{"type":"object","properties":{"property_kind":{"type":"string","default":"object","enum":["array","object"],"title":"Property Kind"},"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"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.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"object","const":"object","title":"Type"},"required":{"type":"array","items":{"type":"string"},"title":"Required"},"properties":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Input"}]},"title":"Properties"},"required_constraints":{"anyOf":[{"$ref":"#/components/schemas/RequiredConstraints"},{"type":"null"}]}},"additionalProperties":false,"title":"ObjectJsonSchemaProperty"},"ObjectJsonSchemaProperty-Output":{"type":"object","properties":{"description":{"type":"string","default":"","title":"Description"},"dynamic_variable":{"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.","type":"string","default":"","title":"Dynamic Variable"},"constant_value":{"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.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Constant Value"},"is_omitted":{"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":"boolean","default":false,"title":"Is Omitted"},"type":{"type":"string","default":"object","const":"object","title":"Type"},"required":{"type":"array","items":{"type":"string"},"title":"Required"},"properties":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"$ref":"#/components/schemas/ArrayJsonSchemaProperty-Output"}]},"title":"Properties"},"required_constraints":{"anyOf":[{"$ref":"#/components/schemas/RequiredConstraints"},{"type":"null"}]}},"additionalProperties":false,"title":"ObjectJsonSchemaProperty"},"OmitSchemaOverride":{"type":"object","properties":{"source":{"type":"string","default":"omit","const":"omit","title":"Source"}},"title":"OmitSchemaOverride"},"OpenAIAudioConfig":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/OpenAIAudioInputConfig"},"output":{"$ref":"#/components/schemas/OpenAIAudioOutputConfig"}},"title":"OpenAIAudioConfig"},"OpenAIAudioInputConfig":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAIAudioInputFormat"},"turn_detection":{"anyOf":[{"$ref":"#/components/schemas/OpenAITurnDetection"},{"type":"null"}]}},"title":"OpenAIAudioInputConfig"},"OpenAIAudioInputFormat":{"type":"object","properties":{"type":{"default":"audio/pcm","$ref":"#/components/schemas/AudioFormat"},"rate":{"type":"integer","default":24000,"title":"Rate"}},"title":"OpenAIAudioInputFormat"},"OpenAIAudioOutputConfig":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAIAudioOutputFormat"},"voice":{"type":"string","default":"brian","title":"Voice"}},"title":"OpenAIAudioOutputConfig"},"OpenAIAudioOutputFormat":{"type":"object","properties":{"type":{"default":"audio/pcm","$ref":"#/components/schemas/AudioFormat"}},"title":"OpenAIAudioOutputFormat"},"OpenAIFunctionTool":{"type":"object","properties":{"type":{"type":"string","default":"function","const":"function","title":"Type"},"name":{"type":"string","title":"Name"},"description":{"type":"string","default":"","title":"Description"},"parameters":{"additionalProperties":true,"title":"Parameters","type":"object"}},"required":["name"],"title":"OpenAIFunctionTool"},"OpenAIMCPTool":{"type":"object","properties":{"type":{"type":"string","default":"mcp","const":"mcp","title":"Type"},"server_label":{"type":"string","title":"Server Label"},"server_url":{"type":"string","title":"Server Url"},"authorization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"allowed_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Tools"},"require_approval":{"type":"string","default":"never","enum":["never","always"],"title":"Require Approval"}},"required":["server_label","server_url"],"title":"OpenAIMCPTool"},"OpenAISessionConfig":{"type":"object","properties":{"type":{"type":"string","default":"realtime","const":"realtime","title":"Type"},"model":{"type":"string","default":"eleven_realtime_fast","title":"Model"},"instructions":{"type":"string","default":"","title":"Instructions"},"modalities":{"type":"array","items":{"type":"string"},"title":"Modalities"},"audio":{"$ref":"#/components/schemas/OpenAIAudioConfig"},"tools":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/OpenAIFunctionTool"},{"$ref":"#/components/schemas/OpenAIMCPTool"}],"discriminator":{"propertyName":"type","mapping":{"function":"#/components/schemas/OpenAIFunctionTool","mcp":"#/components/schemas/OpenAIMCPTool"}}},"title":"Tools"},"tool_choice":{"default":"auto","anyOf":[{"type":"string"},{"$ref":"#/components/schemas/OpenAIToolChoiceFunction"}],"title":"Tool Choice"},"temperature":{"type":"number","default":0.7,"title":"Temperature"},"max_response_output_tokens":{"default":4096,"anyOf":[{"type":"integer","maximum":4096,"minimum":1},{"type":"string","const":"inf"}],"title":"Max Response Output Tokens"},"output_modalities":{"type":"array","items":{"type":"string"},"readOnly":true,"title":"Output Modalities"}},"additionalProperties":false,"required":["output_modalities"],"title":"OpenAISessionConfig"},"OpenAIToolChoiceFunction":{"type":"object","properties":{"type":{"type":"string","default":"function","const":"function","title":"Type"},"function":{"$ref":"#/components/schemas/OpenAIToolChoiceFunctionInner"}},"required":["function"],"title":"OpenAIToolChoiceFunction"},"OpenAIToolChoiceFunctionInner":{"type":"object","properties":{"name":{"type":"string","title":"Name"}},"required":["name"],"title":"OpenAIToolChoiceFunctionInner"},"OpenAITurnDetection":{"type":"object","properties":{"type":{"default":"semantic_vad","$ref":"#/components/schemas/TurnDetectionType"},"eagerness":{"anyOf":[{"$ref":"#/components/schemas/Eagerness"},{"type":"null"}]},"create_response":{"type":"boolean","default":true,"title":"Create Response"},"interrupt_response":{"type":"boolean","default":true,"title":"Interrupt Response"},"threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Threshold"},"prefix_padding_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prefix Padding Ms"},"silence_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Silence Duration Ms"}},"title":"OpenAITurnDetection"},"OpenerConfig":{"type":"object","properties":{"llm":{"description":"Model used to speak a fast opener while the main model generates its full reply. Must be a hosted model (not a bring-your-own LLM type).","$ref":"#/components/schemas/LLM"}},"required":["llm"],"title":"OpenerConfig"},"OptInSmsReminderParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"opt_in_sms_reminder","const":"opt_in_sms_reminder","title":"Smb Tool Type"}},"title":"OptInSmsReminderParams"},"OptOutSmsReminderParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"opt_out_sms_reminder","const":"opt_out_sms_reminder","title":"Smb Tool Type"}},"title":"OptOutSmsReminderParams"},"OrbAvatar":{"type":"object","properties":{"type":{"description":"The type of the avatar","type":"string","default":"orb","const":"orb","title":"Type"},"color_1":{"description":"The first color of the avatar","type":"string","default":"#2792dc","title":"Color 1"},"color_2":{"description":"The second color of the avatar","type":"string","default":"#9ce6e6","title":"Color 2"}},"example":{"color_1":"#2792dc","color_2":"#9ce6e6","type":"orb"},"title":"OrbAvatar"},"OrchestratorToolMockBehaviorConfig":{"description":"Orchestrator-side config: tools are identified by resolved names.","type":"object","properties":{"mocking_strategy":{"description":"Which tools to mock: 'all' mocks every mockable tool, 'selected' mocks only those in mocked_tool_names/mocked_tool_ids, 'none' disables mocking.","default":"none","$ref":"#/components/schemas/MockingStrategy"},"fallback_strategy":{"description":"Behavior when no mock matches a tool call.","default":"raise_error","$ref":"#/components/schemas/MockNoMatchBehavior"},"mocked_tool_names":{"description":"Tool names to mock. Only used when mocking_strategy is 'selected'.","type":"array","items":{"type":"string"},"title":"Mocked Tool Names"}},"title":"OrchestratorToolMockBehaviorConfig"},"OrderDeliverablesResponse":{"type":"object","properties":{"deliverables":{"description":"The list of delivered files for the order. Empty if the order is not yet completed.","type":"array","items":{"$ref":"#/components/schemas/DeliverableInfo"},"title":"Deliverables"}},"example":{"deliverables":[{"content_type":"video/mp4","name":"output_fr.mp4","signed_url":"https://storage.googleapis.com/example-bucket/deliverables/output_fr.mp4?X-Goog-Signature=...","version":1}]},"required":["deliverables"],"title":"OrderDeliverablesResponse"},"OrderId":{"type":"string","pattern":"^prodorder_[a-z0-9]{26}$"},"OrderItemInfo":{"type":"object","properties":{"item_id":{"description":"The ID of the order item.","$ref":"#/components/schemas/ItemId"},"item":{"description":"The item configuration details.","$ref":"#/components/schemas/OrderItemRequest-Output"},"quote":{"description":"The quoted price for this item.","anyOf":[{"$ref":"#/components/schemas/QuoteInfo"},{"type":"null"}]}},"example":{"item":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgatk6h0fwxrtbjade61yqhx","source_language":"en"},"item_id":"proditem_01jgd3qhejfs7rm6swknz2ytjb","quote":{"amount_usd":11}},"required":["item_id","item"],"title":"OrderItemInfo"},"OrderItemKind":{"type":"string","enum":["dub","subtitles","transcription"],"title":"OrderItemKind"},"OrderItemRequest-Input":{"discriminator":{"propertyName":"kind","mapping":{"dub":"#/components/schemas/DubOrderItemRequest","subtitles":"#/components/schemas/SubtitleOrderItemRequest","transcription":"#/components/schemas/TranscriptionOrderItemRequest"}},"oneOf":[{"$ref":"#/components/schemas/DubOrderItemRequest"},{"$ref":"#/components/schemas/SubtitleOrderItemRequest"},{"$ref":"#/components/schemas/TranscriptionOrderItemRequest"}]},"OrderItemRequest-Output":{"discriminator":{"propertyName":"kind","mapping":{"dub":"#/components/schemas/DubOrderItemRequest","subtitles":"#/components/schemas/SubtitleOrderItemRequest","transcription":"#/components/schemas/TranscriptionOrderItemRequest"}},"oneOf":[{"$ref":"#/components/schemas/DubOrderItemRequest"},{"$ref":"#/components/schemas/SubtitleOrderItemRequest"},{"$ref":"#/components/schemas/TranscriptionOrderItemRequest"}]},"OrderMediaResponse":{"type":"object","properties":{"media_id":{"description":"The ID of the media file.","$ref":"#/components/schemas/MediaId"},"name":{"description":"The original filename of the uploaded media.","type":"string","title":"Name"},"content_type":{"description":"The MIME type of the media file (e.g. 'video/mp4').","type":"string","title":"Content Type"},"language":{"description":"The detected or declared language of the media, if available.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"signed_url":{"description":"A time-limited URL to download the media file.","type":"string","title":"Signed Url"}},"example":{"content_type":"video/mp4","language":"en","media_id":"prodmedia_01jgb2zd68f8f9tfvbb968wb8z","name":"example.mp4","signed_url":"https://storage.googleapis.com/example-bucket/media/example.mp4?X-Goog-Signature=..."},"required":["media_id","name","content_type","signed_url"],"title":"OrderMediaResponse"},"OrderRequestState":{"type":"string","enum":["open","submitted","paid","accepted","rejected","done"],"title":"OrderRequestState"},"OrderResponse":{"type":"object","properties":{"order_id":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"},"name":{"description":"The display name of the order.","type":"string","title":"Name"},"state":{"description":"The current state of the order.","$ref":"#/components/schemas/OrderState"},"items":{"description":"The list of items in this order with their quotes.","type":"array","items":{"$ref":"#/components/schemas/OrderItemInfo"},"title":"Items"},"total_amount_usd":{"description":"The total price for all items in USD. Excluded from response until quotes are available.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Amount Usd"},"sandbox":{"description":"Whether this is a sandbox order that auto-progresses without producer intervention.","type":"boolean","default":false,"title":"Sandbox"},"created_at":{"description":"The timestamp when the order was created.","type":"string","format":"date-time","title":"Created At"},"submitted_at":{"description":"The timestamp when the order was submitted, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"paid_at":{"description":"The timestamp when payment was received, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"},"accepted_at":{"description":"The timestamp when the order was accepted for production, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"},"completed_at":{"description":"The timestamp when the order was completed, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"example":{"created_at":"2025-03-15T10:00:00Z","items":[{"item":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgb2zd68f8f9tfvbb968wb8z","source_language":"en"},"item_id":"proditem_01jgd3qhejfs7rm6swknz2ytjb","quote":{"amount_usd":11}}],"name":"Spanish Dubs","order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","sandbox":false,"state":"open","total_amount_usd":11},"required":["order_id","name","state","items","created_at"],"title":"OrderResponse"},"OrderState":{"type":"string","enum":["open","submitted","paid","accepted","rejected","done"],"title":"OrderState"},"OrderSummary":{"type":"object","properties":{"order_id":{"description":"The ID of the order.","$ref":"#/components/schemas/OrderId"},"name":{"description":"The display name of the order.","type":"string","title":"Name"},"state":{"description":"The current state of the order.","$ref":"#/components/schemas/OrderState"},"total_amount_usd":{"description":"The total price for all items in USD. Excluded from response until quotes are available.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Amount Usd"},"sandbox":{"description":"Whether this is a sandbox order that auto-progresses without producer intervention.","type":"boolean","default":false,"title":"Sandbox"},"submitted_at":{"description":"The timestamp when the order was submitted, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"updated_at":{"description":"The timestamp when the order was last modified, if applicable.","anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"example":{"name":"Spanish Dubs","order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","sandbox":false,"state":"submitted","submitted_at":"2025-03-15T10:30:00Z","total_amount_usd":11,"updated_at":"2025-03-15T10:30:00Z"},"required":["order_id","name","state"],"title":"OrderSummary"},"OutboundCallRecipient":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"whatsapp_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp User Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataRequest-Input"},{"type":"null"}]}},"title":"OutboundCallRecipient"},"OutboundCallRecipientResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"whatsapp_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp User Id"},"status":{"$ref":"#/components/schemas/BatchCallRecipientStatus"},"created_at_unix":{"type":"integer","title":"Created At Unix"},"updated_at_unix":{"type":"integer","title":"Updated At Unix"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"conversation_initiation_client_data":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataInternal"},{"type":"null"}]}},"required":["id","status","created_at_unix","updated_at_unix","conversation_id"],"title":"OutboundCallRecipientResponseModel"},"OutboundSIPTrunkConfigRequestModel":{"type":"object","properties":{"address":{"description":"Hostname or IP the SIP INVITE is sent to.","type":"string","title":"Address"},"transport":{"description":"Protocol to use for SIP transport (signalling layer).","default":"auto","$ref":"#/components/schemas/SIPTrunkTransportEnum"},"media_encryption":{"description":"Whether or not to encrypt media (data layer).","default":"allowed","$ref":"#/components/schemas/SIPMediaEncryptionEnum"},"headers":{"description":"SIP X-* headers for INVITE request. These headers are sent as-is and may help identify this call.","type":"object","additionalProperties":{"type":"string"},"title":"Headers"},"attributes_to_headers":{"description":"Map of dynamic variable name to header name for attributes_to_headers","type":"object","additionalProperties":{"type":"string"},"title":"Attributes To Headers"},"credentials":{"description":"Optional digest authentication credentials (username/password). If not provided, ACL authentication is assumed.","anyOf":[{"$ref":"#/components/schemas/SIPTrunkCredentialsRequestModel"},{"type":"null"}]},"enabled_codecs":{"description":"Media codecs that should be offered in the SDP for outbound calls. If empty, all supported codecs are offered.","type":"array","items":{"$ref":"#/components/schemas/MediaCodec"},"title":"Enabled Codecs"}},"required":["address"],"title":"OutboundSIPTrunkConfigRequestModel"},"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","x-fern-enum":{"mp3_22050_32":{"description":"Output format, mp3 with 22.05kHz sample rate at 32kbps"},"mp3_44100_32":{"description":"Output format, mp3 with 44.1kHz sample rate at 32kbps"},"mp3_44100_64":{"description":"Output format, mp3 with 44.1kHz sample rate at 64kbps"},"mp3_44100_96":{"description":"Output format, mp3 with 44.1kHz sample rate at 96kbps"},"mp3_44100_128":{"description":"Default output format, mp3 with 44.1kHz sample rate at 128kbps"},"mp3_44100_192":{"description":"Output format, mp3 with 44.1kHz sample rate at 192kbps.\n"},"pcm_16000":{"description":"PCM format (S16LE) with 16kHz sample rate.\n"},"pcm_22050":{"description":"PCM format (S16LE) with 22.05kHz sample rate.\n"},"pcm_24000":{"description":"PCM format (S16LE) with 24kHz sample rate.\n"},"pcm_44100":{"description":"PCM format (S16LE) with 44.1kHz sample rate. Requires you to be subscribed to Independent Publisher tier or above.\n"},"ulaw_8000":{"description":"μ-law format (sometimes written mu-law, often approximated as u-law) with 8kHz sample rate. Note that this format is commonly used for Twilio audio inputs.\n"}}},"PairedLanguagesResponse":{"type":"object","properties":{"kind":{"description":"Indicates this response contains source-to-destination language pairs.","type":"string","default":"pair","const":"pair","title":"Kind"},"language_pairs":{"description":"The list of available source-to-destination language mappings.","type":"array","items":{"$ref":"#/components/schemas/LanguagePairInfo"},"title":"Language Pairs"}},"example":{"kind":"pair","language_pairs":[{"destination_languages":[{"code":"es","label":"Spanish"},{"code":"es-ES","label":"Spanish (Spain)"},{"code":"fr","label":"French"}],"source_language":{"code":"en","label":"English"}},{"destination_languages":[{"code":"en","label":"English"}],"source_language":{"code":"es-ES","label":"Spanish (Spain)"}}]},"required":["language_pairs"],"title":"PairedLanguagesResponse"},"PatchConvAIDashboardSettingsRequest":{"type":"object","properties":{"charts":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DashboardCallSuccessChartModel"},{"$ref":"#/components/schemas/DashboardCriteriaChartModel"},{"$ref":"#/components/schemas/DashboardDataCollectionChartModel"}],"discriminator":{"propertyName":"type","mapping":{"call_success":"#/components/schemas/DashboardCallSuccessChartModel","criteria":"#/components/schemas/DashboardCriteriaChartModel","data_collection":"#/components/schemas/DashboardDataCollectionChartModel"}}},"maxItems":4,"title":"Charts"}},"title":"PatchConvAIDashboardSettingsRequest"},"PatchConvAISettingsRequest":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"anyOf":[{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},{"type":"null"}]},"webhooks":{"$ref":"#/components/schemas/ConvAIWebhooks"},"can_use_mcp_servers":{"description":"Whether the workspace can use MCP servers","type":"boolean","default":false,"title":"Can Use Mcp Servers"},"rag_retention_period_days":{"type":"integer","default":10,"exclusiveMinimum":0,"maximum":30,"title":"Rag Retention Period Days"},"conversation_embedding_retention_days":{"description":"Days to retain conversation embeddings. None means use the system default (30 days).","anyOf":[{"type":"integer","maximum":365,"exclusiveMinimum":0},{"type":"null"}],"title":"Conversation Embedding Retention Days"},"default_livekit_stack":{"default":"standard","$ref":"#/components/schemas/LivekitStackType"}},"title":"PatchConvAISettingsRequest"},"PatchConversationTagRequestModel":{"type":"object","properties":{"title":{"description":"If provided, replaces the tag title. Omit to leave unchanged.","anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"description":"If provided, replaces the tag description. Omit to leave unchanged.","anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"title":"PatchConversationTagRequestModel"},"PatchWorkspaceSecretRequest":{"type":"object","properties":{"type":{"type":"string","const":"update","title":"Type"},"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"required":["type","name","value"],"title":"PatchWorkspaceSecretRequest"},"PatchWorkspaceWebhookResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace webhook patch request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"PatchWorkspaceWebhookResponseModel"},"PdfExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"pdf","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"PdfExportOptions"},"PendingBlocksMetadataModel":{"type":"object","properties":{"target_global_offset_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Global Offset Ms"},"block_ids":{"type":"array","items":{"type":"string"},"title":"Block Ids"}},"required":["target_global_offset_ms","block_ids"],"title":"PendingBlocksMetadataModel"},"PendingCancellationResponseModel":{"type":"object","properties":{"kind":{"type":"string","default":"cancellation","const":"cancellation","title":"Kind"},"timestamp_seconds":{"description":"The timestamp of the cancellation.","type":"integer","title":"Timestamp Seconds"}},"required":["timestamp_seconds"],"title":"PendingCancellationResponseModel"},"PendingClipTask":{"type":"object","properties":{"type":{"type":"string","enum":["preprocessing","speech_import","dubbing","video_to_music","media_generation"],"title":"Type"},"progress":{"type":"number","default":0,"title":"Progress"},"started_at_ms":{"type":"integer","title":"Started At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"metadata":{"type":"object","additionalProperties":true,"title":"Metadata"}},"required":["type"],"title":"PendingClipTask"},"PendingExternalAudiosMetadataModel":{"type":"object","properties":{"target_global_offset_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Global Offset Ms"},"external_audio_ids":{"type":"array","items":{"type":"string"},"title":"External Audio Ids"}},"required":["target_global_offset_ms","external_audio_ids"],"title":"PendingExternalAudiosMetadataModel"},"PendingSubscriptionSwitchResponseModel":{"type":"object","properties":{"kind":{"type":"string","default":"change","const":"change","title":"Kind"},"next_tier":{"description":"The tier to change to.","type":"string","enum":["free","starter","creator","pro","growing_business","scale_2024_08_10","grant_tier_1_2025_07_23","grant_tier_2_2025_07_23","trial","enterprise"],"title":"Next Tier"},"next_billing_period":{"description":"The billing period to change to.","$ref":"#/components/schemas/BillingPeriod"},"timestamp_seconds":{"description":"The timestamp of the change.","type":"integer","title":"Timestamp Seconds"}},"required":["next_tier","next_billing_period","timestamp_seconds"],"title":"PendingSubscriptionSwitchResponseModel"},"PermissionType":{"type":"string","enum":["text_to_speech","speech_to_speech","speech_to_text","models_read","models_write","voices_read","voices_write","speech_history_read","speech_history_write","sound_generation","audio_isolation","voice_generation","dubbing_read","dubbing_write","pronunciation_dictionaries_read","pronunciation_dictionaries_write","user_read","user_write","projects_read","projects_write","audio_native_read","audio_native_write","workspace_read","workspace_write","forced_alignment","convai_read","convai_write","music_generation","image_video_generation","flows","templates","add_voice_from_voice_library","create_instant_voice_clone","create_professional_voice_clone","publish_voice_to_voice_library","share_voice_externally","create_user_api_key","workspace_analytics_full_read","webhooks_write","service_account_write","group_members_manage","workspace_members_read","workspace_members_invite","workspace_members_remove","terms_of_service_accept","audit_log_read","conversation_privacy_manage","copy_resources_cross_workspace","synthid_detector"],"title":"PermissionType"},"PhoneNumberAgentInfo":{"type":"object","properties":{"agent_id":{"description":"The ID of the agent","type":"string","title":"Agent Id"},"agent_name":{"description":"The name of the agent","type":"string","title":"Agent Name"},"environment":{"description":"Environment to use for resolving environment variables on calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"branch_id":{"description":"Agent branch to use for calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"example":{"agent_id":"F3Pbu5gP6NNKBscdCdwB","agent_name":"My Agent"},"required":["agent_id","agent_name"],"title":"PhoneNumberAgentInfo"},"PhoneNumberDynamicVariableTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"phone_dynamic_variable","const":"phone_dynamic_variable","title":"Type"},"phone_number":{"type":"string","title":"Phone Number"}},"required":["phone_number"],"title":"PhoneNumberDynamicVariableTransferDestination"},"PhoneNumberTransfer":{"type":"object","properties":{"custom_sip_headers":{"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/CustomSIPHeader"},{"$ref":"#/components/schemas/CustomSIPHeaderWithDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/CustomSIPHeaderWithDynamicVariable","static":"#/components/schemas/CustomSIPHeader"}}},"maxItems":20,"title":"Custom Sip Headers"},"transfer_destination":{"discriminator":{"propertyName":"type","mapping":{"phone":"#/components/schemas/PhoneNumberTransferDestination","phone_dynamic_variable":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination","sip_uri":"#/components/schemas/SIPUriTransferDestination","sip_uri_dynamic_variable":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}},"oneOf":[{"$ref":"#/components/schemas/PhoneNumberTransferDestination"},{"$ref":"#/components/schemas/SIPUriTransferDestination"},{"$ref":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination"},{"$ref":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}],"title":"Transfer Destination"},"transfer_type":{"default":"conference","$ref":"#/components/schemas/TransferTypeEnum"},"uui":{"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.","anyOf":[{"$ref":"#/components/schemas/UUITransferConfig"},{"type":"null"}]},"post_dial_digits":{"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.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/PostDialDigitsStatic"},{"$ref":"#/components/schemas/PostDialDigitsDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/PostDialDigitsDynamicVariable","static":"#/components/schemas/PostDialDigitsStatic"}}},{"type":"null"}],"title":"Post Dial Digits"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Phone Number"},"condition":{"type":"string","title":"Condition"}},"required":["transfer_destination","condition"],"title":"PhoneNumberTransfer"},"PhoneNumberTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"phone","const":"phone","title":"Type"},"phone_number":{"type":"string","title":"Phone Number"}},"required":["phone_number"],"title":"PhoneNumberTransferDestination"},"PlatformCategory":{"description":"Buckets that make up the non-LLM ``platform_charge`` of a conversation.","type":"string","enum":["voice","silence","burst","asr","text_message","reception","other"],"title":"PlatformCategory"},"PlatformCategoryUsage":{"description":"Accumulated charge for a single :class:`PlatformCategory`.","type":"object","properties":{"credits":{"type":"integer","default":0,"title":"Credits"},"price":{"type":"number","default":0,"title":"Price"},"quantity":{"type":"number","default":0,"title":"Quantity"}},"title":"PlatformCategoryUsage"},"PlatformUsage":{"description":"Per-category breakdown of ``platform_charge`` (the analogue of ``llm_usage``).","type":"object","properties":{"category_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PlatformCategoryUsage"},"propertyNames":{"$ref":"#/components/schemas/PlatformCategory"},"title":"Category Usage"}},"title":"PlatformUsage"},"PlayDTMFResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"play_dtmf_error","const":"play_dtmf_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"error":{"type":"string","title":"Error"},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details"}},"required":["error"],"title":"PlayDTMFResultErrorModel"},"PlayDTMFResultSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"play_dtmf_success","const":"play_dtmf_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"dtmf_tones":{"type":"string","title":"Dtmf Tones"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"required":["dtmf_tones"],"title":"PlayDTMFResultSuccessModel"},"PlayDTMFToolConfig":{"description":"Allows the agent to play DTMF tones during a phone call.\n\nThis tool can be used to interact with automated phone systems, such as\nnavigating phone menus, entering extensions, or inputting numeric codes.","type":"object","properties":{"system_tool_type":{"type":"string","default":"play_keypad_touch_tone","const":"play_keypad_touch_tone","title":"System Tool Type"},"use_out_of_band_dtmf":{"description":"Send DTMF tones as out-of-band RTP events (RFC 4733) instead of in-band audio. Only effective for SIP trunk imported numbers.","type":"boolean","default":true,"title":"Use Out Of Band Dtmf"},"suppress_turn_after_dtmf":{"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.","type":"boolean","default":false,"title":"Suppress Turn After Dtmf"}},"title":"PlayDTMFToolConfig"},"PodcastBulletinMode":{"type":"object","properties":{"type":{"description":"The type of podcast to create.","type":"string","const":"bulletin","title":"Type"},"bulletin":{"description":"The voice settings for the bulletin.","$ref":"#/components/schemas/PodcastBulletinModeData"}},"example":{"bulletin":{"host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"type":"bulletin"},"required":["type","bulletin"],"title":"PodcastBulletinMode"},"PodcastBulletinModeData":{"type":"object","properties":{"host_voice_id":{"description":"The ID of the host voice.","type":"string","title":"Host Voice Id"}},"example":{"host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"required":["host_voice_id"],"title":"PodcastBulletinModeData"},"PodcastConversationMode":{"type":"object","properties":{"type":{"description":"The type of podcast to create.","type":"string","const":"conversation","title":"Type"},"conversation":{"description":"The voice settings for the conversation.","$ref":"#/components/schemas/PodcastConversationModeData"}},"example":{"conversation":{"guest_voice_id":"aw1NgEzBg83R7vgmiJt7","host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"type":"conversation"},"required":["type","conversation"],"title":"PodcastConversationMode"},"PodcastConversationModeData":{"type":"object","properties":{"host_voice_id":{"description":"The ID of the host voice.","type":"string","title":"Host Voice Id"},"guest_voice_id":{"description":"The ID of the guest voice.","type":"string","title":"Guest Voice Id"}},"example":{"guest_voice_id":"aw1NgEzBg83R7vgmiJt7","host_voice_id":"aw1NgEzBg83R7vgmiJt6"},"required":["host_voice_id","guest_voice_id"],"title":"PodcastConversationModeData"},"PodcastProjectResponseModel":{"type":"object","properties":{"project":{"description":"The project associated with the created podcast.","$ref":"#/components/schemas/ProjectResponseModel"}},"required":["project"],"title":"PodcastProjectResponseModel"},"PodcastTextSource":{"type":"object","properties":{"type":{"description":"The type of source to create.","type":"string","const":"text","title":"Type"},"text":{"description":"The text to create the podcast from.","type":"string","title":"Text"}},"example":{"text":"This is a test podcast.","type":"text"},"required":["type","text"],"title":"PodcastTextSource"},"PodcastURLSource":{"type":"object","properties":{"type":{"description":"The type of source to create.","type":"string","const":"url","title":"Type"},"url":{"description":"The URL to create the podcast from.","type":"string","title":"Url"}},"example":{"type":"url","url":"https://www.example.com"},"required":["type","url"],"title":"PodcastURLSource"},"Position-Input":{"type":"object","properties":{"x":{"type":"number","default":0,"title":"X"},"y":{"type":"number","default":0,"title":"Y"}},"title":"Position"},"Position-Output":{"type":"object","properties":{"x":{"type":"number","default":0,"title":"X"},"y":{"type":"number","default":0,"title":"Y"}},"required":["x","y"],"title":"Position"},"PostAgentAvatarResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"}},"required":["agent_id"],"title":"PostAgentAvatarResponseModel"},"PostDialDigitsDynamicVariable":{"type":"object","properties":{"type":{"type":"string","default":"dynamic","const":"dynamic","title":"Type"},"value":{"description":"The dynamic variable name to resolve","type":"string","minLength":1,"title":"Value"}},"required":["value"],"title":"PostDialDigitsDynamicVariable"},"PostDialDigitsStatic":{"type":"object","properties":{"type":{"type":"string","default":"static","const":"static","title":"Type"},"value":{"description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension)","type":"string","minLength":1,"pattern":"^[0-9*#wW]*$","title":"Value"}},"required":["value"],"title":"PostDialDigitsStatic"},"PostWorkspaceSecretRequest":{"type":"object","properties":{"type":{"type":"string","const":"new","title":"Type"},"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"required":["type","name","value"],"title":"PostWorkspaceSecretRequest"},"PostWorkspaceSecretResponseModel":{"type":"object","properties":{"type":{"type":"string","const":"stored","title":"Type"},"secret_id":{"type":"string","title":"Secret Id"},"name":{"type":"string","title":"Name"}},"required":["type","secret_id","name"],"title":"PostWorkspaceSecretResponseModel"},"PreToolSpeechMode":{"type":"string","default":"auto","enum":["auto","force","off"],"title":"PreToolSpeechMode"},"PreviewAudioDBModel":{"type":"object","properties":{"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"audio_url":{"type":"string","title":"Audio Url"},"hls_manifest_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hls Manifest Url"},"dash_manifest_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dash Manifest Url"},"is_auto_generated":{"default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Auto Generated"},"generated_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Generated At Unix"}},"required":["audio_url"],"title":"PreviewAudioDBModel"},"Price":{"description":"Currency/amount pair.","type":"object","properties":{"amount":{"type":"string","title":"Amount"},"currency":{"$ref":"#/components/schemas/Currency"}},"required":["amount","currency"],"title":"Price"},"PrivacyConfig-Input":{"type":"object","properties":{"record_voice":{"description":"Whether to record the conversation","type":"boolean","default":true,"title":"Record Voice"},"retention_days":{"description":"The number of days to retain the conversation. -1 indicates there is no retention limit","type":"integer","default":-1,"title":"Retention Days"},"delete_transcript_and_pii":{"description":"Whether to delete the transcript and PII","type":"boolean","default":false,"title":"Delete Transcript And Pii"},"delete_audio":{"description":"Whether to delete the audio","type":"boolean","default":false,"title":"Delete Audio"},"apply_to_existing_conversations":{"description":"Whether to apply the privacy settings to existing conversations","type":"boolean","default":false,"title":"Apply To Existing Conversations"},"zero_retention_mode":{"description":"Whether to enable zero retention mode - no PII data is stored","type":"boolean","default":false,"title":"Zero Retention Mode"},"conversation_history_redaction":{"description":"Config for PII redaction in the conversation history","$ref":"#/components/schemas/ConversationHistoryRedactionConfig"}},"example":{"apply_to_existing_conversations":false,"delete_audio":false,"delete_transcript_and_pii":false,"record_voice":true,"retention_days":-1,"zero_retention_mode":false},"title":"PrivacyConfig"},"PrivacyConfig-Output":{"type":"object","properties":{"record_voice":{"description":"Whether to record the conversation","type":"boolean","default":true,"title":"Record Voice"},"retention_days":{"description":"The number of days to retain the conversation. -1 indicates there is no retention limit","type":"integer","default":-1,"title":"Retention Days"},"delete_transcript_and_pii":{"description":"Whether to delete the transcript and PII","type":"boolean","default":false,"title":"Delete Transcript And Pii"},"delete_audio":{"description":"Whether to delete the audio","type":"boolean","default":false,"title":"Delete Audio"},"apply_to_existing_conversations":{"description":"Whether to apply the privacy settings to existing conversations","type":"boolean","default":false,"title":"Apply To Existing Conversations"},"zero_retention_mode":{"description":"Whether to enable zero retention mode - no PII data is stored","type":"boolean","default":false,"title":"Zero Retention Mode"},"conversation_history_redaction":{"description":"Config for PII redaction in the conversation history","$ref":"#/components/schemas/ConversationHistoryRedactionConfig"}},"example":{"apply_to_existing_conversations":false,"delete_audio":false,"delete_transcript_and_pii":false,"record_voice":true,"retention_days":-1,"zero_retention_mode":false},"title":"PrivacyConfig"},"PrivateKeyJWTResponse":{"description":"Response model for Private Key JWT auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"private_key_jwt","const":"private_key_jwt","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"algorithm":{"description":"JWT signing algorithm","type":"string","default":"HS256","enum":["HS256","HS384","HS512","RS256","RS384","RS512"],"title":"Algorithm"},"key_id":{"description":"Key ID (kid) for JWT header - useful for key rotation","anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"description":"JWT issuer (iss claim)","type":"string","title":"Issuer"},"audience":{"description":"JWT audience (aud claim)","type":"string","title":"Audience"},"subject":{"description":"JWT subject (sub claim)","type":"string","title":"Subject"},"expiration_seconds":{"description":"Token expiration time in seconds","type":"integer","default":3600,"maximum":86400,"minimum":60,"title":"Expiration Seconds"},"extra_params":{"description":"Additional custom claims to include in the JWT","type":"object","additionalProperties":{"type":"string"},"title":"Extra Params"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","issuer","audience","subject","id"],"title":"PrivateKeyJWTResponse"},"ProcedureAtVersion-Input":{"type":"object","properties":{"procedure_id":{"description":"Procedure ID","type":"string","title":"Procedure Id"},"name":{"description":"Procedure name","type":"string","maxLength":200,"title":"Name"},"type":{"default":"free_form","$ref":"#/components/schemas/ProcedureType"},"trigger":{"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.","type":"string","default":"","title":"Trigger"},"referenced_tool_ids":{"description":"Tool IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Tool Ids"},"referenced_kb_ids":{"description":"Knowledge base IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Kb Ids"},"referenced_procedure_ids":{"description":"Procedure IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Procedure Ids"},"referenced_dynamic_variables":{"description":"Dynamic variable names used in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Dynamic Variables"},"content":{"description":"Procedure content","maxLength":50000,"title":"Content","type":"string"},"guardrails":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Guardrails"},"agent_id":{"description":"Agent ID of the procedure","type":"string","title":"Agent Id"},"version_id":{"description":"Version ID of a version of the procedure. None for a procedure never versioned.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["procedure_id","name","content","agent_id"],"title":"ProcedureAtVersion"},"ProcedureAtVersion-Output":{"type":"object","properties":{"procedure_id":{"description":"Procedure ID","type":"string","title":"Procedure Id"},"name":{"description":"Procedure name","type":"string","maxLength":200,"title":"Name"},"type":{"default":"free_form","$ref":"#/components/schemas/ProcedureType"},"trigger":{"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.","type":"string","default":"","title":"Trigger"},"referenced_tool_ids":{"description":"Tool IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Tool Ids"},"referenced_kb_ids":{"description":"Knowledge base IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Kb Ids"},"referenced_procedure_ids":{"description":"Procedure IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Procedure Ids"},"referenced_dynamic_variables":{"description":"Dynamic variable names used in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Dynamic Variables"},"content":{"description":"Procedure content","maxLength":50000,"title":"Content","type":"string"},"guardrails":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"},"title":"Guardrails"},"agent_id":{"description":"Agent ID of the procedure","type":"string","title":"Agent Id"},"version_id":{"description":"Version ID of a version of the procedure. None for a procedure never versioned.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["procedure_id","name","content","agent_id"],"title":"ProcedureAtVersion"},"ProcedureRefResponseModel":{"type":"object","properties":{"procedure_id":{"description":"Procedure ID","type":"string","title":"Procedure Id"},"version_id":{"description":"Version ID of a version of the procedure. None for a procedure never versioned.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"},"name":{"description":"Procedure name","type":"string","default":"","title":"Name"},"type":{"description":"Procedure type","default":"free_form","$ref":"#/components/schemas/ProcedureType"},"trigger":{"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.","type":"string","default":"","title":"Trigger"},"referenced_tool_ids":{"description":"Tool IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Tool Ids"},"referenced_kb_ids":{"description":"Knowledge base IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Kb Ids"},"referenced_procedure_ids":{"description":"Procedure IDs referenced in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Procedure Ids"},"referenced_dynamic_variables":{"description":"Dynamic variable names used in the procedure content","type":"array","items":{"type":"string"},"title":"Referenced Dynamic Variables"}},"example":{"name":"Customer Support Procedure","procedure_id":"agtprc_6qbpwdq8n01bxhk44bgjy6f10ck3","referenced_dynamic_variables":["customer_id"],"referenced_kb_ids":["kb_123"],"referenced_procedure_ids":["agtprc_other"],"referenced_tool_ids":["tool_123"],"trigger":"When the customer asks for support","type":"free_form","version_id":"agtprcv_7rbqxer9o12cyxi55ckw6sgz1dl4"},"required":["procedure_id"],"title":"ProcedureRefResponseModel"},"ProcedureType":{"type":"string","default":"free_form","enum":["free_form","deterministic"],"title":"ProcedureType"},"ProjectCreationMetaResponseModel":{"type":"object","properties":{"creation_progress":{"description":"The progress of the project creation.","type":"number","title":"Creation Progress"},"status":{"description":"The status of the project creation action.","type":"string","enum":["draft","pending","creating","finished","failed"],"title":"Status"},"type":{"description":"The type of the project creation action.","$ref":"#/components/schemas/ProjectCreationMetaType"}},"example":{"creation_progress":0.5,"status":"pending","type":"blank"},"required":["creation_progress","status","type"],"title":"ProjectCreationMetaResponseModel"},"ProjectCreationMetaType":{"type":"string","enum":["blank","generate_podcast","auto_assign_voices","dub_video","import_speech"],"title":"ProjectCreationMetaType"},"ProjectExtendedResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"name":{"description":"The name of the project.","type":"string","title":"Name"},"create_date_unix":{"description":"The creation date of the project.","type":"integer","title":"Create Date Unix"},"created_by_user_id":{"description":"The user ID who created the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"},"default_title_voice_ref_id":{"description":"The default title project voice reference ID.","type":"string","title":"Default Title Voice Ref Id"},"default_paragraph_voice_ref_id":{"description":"The default paragraph project voice reference ID.","type":"string","title":"Default Paragraph Voice Ref Id"},"default_model_id":{"description":"The default model ID.","type":"string","title":"Default Model Id"},"last_conversion_date_unix":{"description":"The last conversion date of the project.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"can_be_downloaded":{"description":"Whether the project can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"title":{"description":"The title of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"author":{"description":"The author of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"description":{"description":"The description of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"description":"List of genres of the project.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Genres"},"cover_image_url":{"description":"The cover image URL of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"target_audience":{"description":"The target audience of the project.","anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"title":"Target Audience"},"language":{"description":"Two-letter language code (ISO 639-1) of the language of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"content_type":{"description":"The content type of the project, e.g. 'Novel' or 'Short Story'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"original_publication_date":{"description":"The original publication date of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Publication Date"},"mature_content":{"description":"Whether the project contains mature content.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mature Content"},"isbn_number":{"description":"The ISBN number of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Isbn Number"},"volume_normalization":{"description":"Whether the project uses volume normalization.","type":"boolean","title":"Volume Normalization"},"state":{"description":"The state of the project.","type":"string","enum":["creating","default","converting","in_queue"],"title":"State","x-fern-type-name":"ProjectState"},"access_level":{"description":"The access level of the project.","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"},"fiction":{"description":"Whether the project is fiction.","anyOf":[{"type":"string","enum":["fiction","non-fiction"]},{"type":"null"}],"title":"Fiction"},"quality_check_on":{"description":"Whether quality check is enabled for this project.","type":"boolean","deprecated":true,"title":"Quality Check On"},"quality_check_on_when_bulk_convert":{"description":"Whether quality check is enabled on the project when bulk converting.","type":"boolean","deprecated":true,"title":"Quality Check On When Bulk Convert"},"creation_meta":{"description":"The creation meta of the project.","anyOf":[{"$ref":"#/components/schemas/ProjectCreationMetaResponseModel"},{"type":"null"}]},"source_type":{"description":"The source type of the project.","anyOf":[{"type":"string","enum":["blank","book","article","genfm","video","screenplay"]},{"type":"null"}],"title":"Source Type"},"chapters_enabled":{"description":"Whether chapters are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chapters Enabled"},"captions_enabled":{"description":"Whether captions are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Captions Enabled"},"caption_style":{"description":"Global styling to be applied to all captions","anyOf":[{"$ref":"#/components/schemas/CaptionStyleModel"},{"type":"null"}]},"caption_style_template_overrides":{"description":"Styling changes that have been made to the provided templates","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/CaptionStyleModel"},"type":"object"},{"type":"null"}],"title":"Caption Style Template Overrides"},"public_share_id":{"description":"The public share ID of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Share Id"},"aspect_ratio":{"description":"The aspect ratio of the project.","anyOf":[{"type":"string","enum":["16:9","9:16","4:5","1:1"]},{"type":"null"}],"title":"Aspect Ratio"},"agent_settings":{"description":"Agent-related settings for the project","anyOf":[{"$ref":"#/components/schemas/StudioAgentSettingsModel"},{"type":"null"}]},"quality_preset":{"description":"The quality preset level of the project.","$ref":"#/components/schemas/QualityPresetType"},"chapters":{"description":"List of chapters of the project and their metadata.","type":"array","items":{"$ref":"#/components/schemas/ChapterResponseModel"},"title":"Chapters"},"pronunciation_dictionary_versions":{"description":"List of pronunciation dictionary versions of the project and their metadata.","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryVersionResponseModel"},"title":"Pronunciation Dictionary Versions"},"pronunciation_dictionary_locators":{"description":"List of pronunciation dictionary locators.","type":"array","items":{"$ref":"#/components/schemas/PronunciationDictionaryLocatorResponseModel"},"title":"Pronunciation Dictionary Locators"},"apply_text_normalization":{"description":"Whether text normalization is applied to the project.","type":"string","enum":["auto","on","off","apply_english"],"title":"Apply Text Normalization"},"experimental":{"description":"Experimental features for the project.","type":"object","additionalProperties":true,"title":"Experimental"},"assets":{"description":"List of uploaded assets e.g. videos, audios.","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ProjectVideoResponseModel"},{"$ref":"#/components/schemas/ProjectExternalAudioResponseModel"},{"$ref":"#/components/schemas/ProjectImageResponseModel"}]},"title":"Assets"},"voices":{"description":"List of configured project voices.","type":"array","items":{"$ref":"#/components/schemas/ProjectVoiceResponseModel"},"title":"Voices"},"base_voices":{"description":"List of voices used by the project.","anyOf":[{"items":{"$ref":"#/components/schemas/VoiceResponseModel"},"type":"array"},{"type":"null"}],"title":"Base Voices"},"publishing_read":{"description":"The ElevenReader data if the book was published.","anyOf":[{"$ref":"#/components/schemas/DirectPublishingReadResponseModel"},{"type":"null"}]},"default_title_voice_id":{"description":"The default title voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The default paragraph voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Paragraph Voice Id"}},"example":{"access_level":"viewer","apply_text_normalization":"auto","assets":[],"author":"John Doe","base_voices":[],"can_be_downloaded":true,"chapters":[{"can_be_downloaded":true,"chapter_id":"aw1NgEzBg83R7vgmiJt6","conversion_progress":0.5,"last_conversion_date_unix":1714204800,"last_conversion_error":"Error message","name":"Chapter 1","state":"converting","statistics":{"characters_converted":500,"characters_unconverted":1000,"credits_needed_to_convert":1000,"paragraphs_converted":20,"paragraphs_unconverted":10,"voice_statistics":[{"characters_converted":300,"characters_unconverted":600,"project_voice_ref_id":"voice123","voice_id":"voice123"},{"characters_converted":200,"characters_unconverted":400,"project_voice_ref_id":"voice456","voice_id":"voice456"}]}}],"content_type":"Novel","cover_image_url":"https://example.com/cover.jpg","create_date_unix":1714204800,"created_by_user_id":"Vbtgl3bRdj6lk79rYAgx","creation_meta":{"creation_progress":0.5,"status":"pending","type":"blank"},"default_model_id":"eleven_multilingual_v2","default_paragraph_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_paragraph_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","description":"This is a description of my project.","experimental":{},"fiction":"fiction","genres":["Novel","Short Story"],"isbn_number":"978-90-274-3964-2","language":"en","last_conversion_date_unix":1714204800,"mature_content":false,"name":"My Project","original_publication_date":"2025-01-01","project_id":"aw1NgEzBg83R7vgmiJt6","pronunciation_dictionary_locators":[],"pronunciation_dictionary_versions":[],"public_share_id":"abc123def456789","quality_check_on":false,"quality_check_on_when_bulk_convert":false,"quality_preset":"standard","state":"default","target_audience":"young adult","title":"My Project","voices":[],"volume_normalization":true},"required":["project_id","name","create_date_unix","created_by_user_id","default_title_voice_ref_id","default_paragraph_voice_ref_id","default_model_id","can_be_downloaded","volume_normalization","state","access_level","quality_check_on","quality_check_on_when_bulk_convert","quality_preset","chapters","pronunciation_dictionary_versions","pronunciation_dictionary_locators","apply_text_normalization","assets","voices","default_title_voice_id","default_paragraph_voice_id"],"title":"ProjectExtendedResponseModel","x-fern-type-name":"ProjectExtendedResponse"},"ProjectExternalAudioResponseModel":{"type":"object","properties":{"external_audio_id":{"type":"string","title":"External Audio Id"},"filename":{"type":"string","title":"Filename"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"},"offset_ms":{"type":"integer","title":"Offset Ms"},"duration_ms":{"type":"integer","title":"Duration Ms"},"start_time_ms":{"type":"integer","title":"Start Time Ms"},"end_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time Ms"},"order":{"type":"string","title":"Order"},"track_id":{"type":"string","title":"Track Id"},"created_at_ms":{"type":"integer","title":"Created At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"volume_gain_db":{"type":"number","default":0,"title":"Volume Gain Db"},"muted":{"type":"boolean","default":false,"title":"Muted"},"fade_in_ms":{"type":"integer","default":0,"title":"Fade In Ms"},"fade_out_ms":{"type":"integer","default":0,"title":"Fade Out Ms"},"source_external_audio_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source External Audio Id"},"source_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Asset Id"},"source_platform_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Platform Asset Id"},"pending_blocks_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingBlocksMetadataModel"},{"type":"null"}]},"pending_external_audios_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingExternalAudiosMetadataModel"},{"type":"null"}]},"speech_imported":{"type":"boolean","default":false,"title":"Speech Imported"},"pending_task":{"anyOf":[{"$ref":"#/components/schemas/PendingClipTask"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"current_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Snapshot Id"},"source_context":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/SongSourceContext"},{"$ref":"#/components/schemas/MusicExploreSongSourceContext"},{"$ref":"#/components/schemas/SfxSourceContext"}],"discriminator":{"propertyName":"source_type","mapping":{"music_explore_song":"#/components/schemas/MusicExploreSongSourceContext","sfx":"#/components/schemas/SfxSourceContext","song":"#/components/schemas/SongSourceContext"}}},{"type":"null"}],"title":"Source Context"},"analysis":{"anyOf":[{"$ref":"#/components/schemas/AudioAnalysis"},{"type":"null"}]},"transcription":{"anyOf":[{"$ref":"#/components/schemas/AssetTranscription"},{"type":"null"}]},"type":{"type":"string","default":"audio","const":"audio","title":"Type"},"import_speech_progress":{"anyOf":[{"type":"number"},{"type":"null"}],"readOnly":true,"title":"Import Speech Progress"}},"required":["external_audio_id","filename","signed_url","offset_ms","duration_ms","start_time_ms","end_time_ms","order","track_id","created_at_ms","updated_at_ms","import_speech_progress"],"title":"ProjectExternalAudioResponseModel"},"ProjectImageResponseModel":{"type":"object","properties":{"image_id":{"type":"string","title":"Image Id"},"filename":{"type":"string","title":"Filename"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"},"thumbnail_signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Signed Url"},"type":{"type":"string","default":"image","const":"image","title":"Type"},"source":{"type":"string","default":"upload","const":"upload","title":"Source"},"file_size_bytes":{"type":"integer","title":"File Size Bytes"},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"track_id":{"type":"string","default":"v0","title":"Track Id"},"offset_ms":{"type":"integer","title":"Offset Ms"},"duration_ms":{"type":"integer","title":"Duration Ms"},"order":{"type":"string","title":"Order"},"canvas_placement":{"$ref":"#/components/schemas/CanvasPlacement"},"animation":{"default":{"enter_effect":"none","enter_duration_ms":0,"exit_effect":"none","exit_duration_ms":0},"$ref":"#/components/schemas/ClipAnimation"},"opacity":{"type":"number","default":1,"maximum":1,"minimum":0,"title":"Opacity"},"created_at_ms":{"type":"integer","title":"Created At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"current_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Snapshot Id"},"source_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Asset Id"},"source_platform_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Platform Asset Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"pending_task":{"anyOf":[{"$ref":"#/components/schemas/PendingClipTask"},{"type":"null"}]},"analysis":{"anyOf":[{"$ref":"#/components/schemas/ImageAnalysis"},{"type":"null"}]}},"required":["image_id","filename","file_size_bytes","width","height","offset_ms","duration_ms","order","canvas_placement","created_at_ms","updated_at_ms"],"title":"ProjectImageResponseModel"},"ProjectMutedTracksResponseModel":{"type":"object","properties":{"chapter_ids":{"description":"List of chapter IDs that have muted tracks.","type":"array","items":{"type":"string"},"title":"Chapter Ids"}},"example":{"chapter_ids":["aw1NgEzBg83R7vgmiJt6"]},"required":["chapter_ids"],"title":"ProjectMutedTracksResponseModel"},"ProjectResponseModel":{"type":"object","properties":{"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"name":{"description":"The name of the project.","type":"string","title":"Name"},"create_date_unix":{"description":"The creation date of the project.","type":"integer","title":"Create Date Unix"},"created_by_user_id":{"description":"The user ID who created the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By User Id"},"default_title_voice_ref_id":{"description":"The default title project voice reference ID.","type":"string","title":"Default Title Voice Ref Id"},"default_paragraph_voice_ref_id":{"description":"The default paragraph project voice reference ID.","type":"string","title":"Default Paragraph Voice Ref Id"},"default_model_id":{"description":"The default model ID.","type":"string","title":"Default Model Id"},"last_conversion_date_unix":{"description":"The last conversion date of the project.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Conversion Date Unix"},"can_be_downloaded":{"description":"Whether the project can be downloaded.","type":"boolean","title":"Can Be Downloaded"},"title":{"description":"The title of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"author":{"description":"The author of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"description":{"description":"The description of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"description":"List of genres of the project.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Genres"},"cover_image_url":{"description":"The cover image URL of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"target_audience":{"description":"The target audience of the project.","anyOf":[{"type":"string","enum":["children","young adult","adult","all ages"]},{"type":"null"}],"title":"Target Audience"},"language":{"description":"Two-letter language code (ISO 639-1) of the language of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"content_type":{"description":"The content type of the project, e.g. 'Novel' or 'Short Story'","anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"original_publication_date":{"description":"The original publication date of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Publication Date"},"mature_content":{"description":"Whether the project contains mature content.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mature Content"},"isbn_number":{"description":"The ISBN number of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Isbn Number"},"volume_normalization":{"description":"Whether the project uses volume normalization.","type":"boolean","title":"Volume Normalization"},"state":{"description":"The state of the project.","type":"string","enum":["creating","default","converting","in_queue"],"title":"State","x-fern-type-name":"ProjectState"},"access_level":{"description":"The access level of the project.","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Access Level"},"fiction":{"description":"Whether the project is fiction.","anyOf":[{"type":"string","enum":["fiction","non-fiction"]},{"type":"null"}],"title":"Fiction"},"quality_check_on":{"description":"Whether quality check is enabled for this project.","type":"boolean","deprecated":true,"title":"Quality Check On"},"quality_check_on_when_bulk_convert":{"description":"Whether quality check is enabled on the project when bulk converting.","type":"boolean","deprecated":true,"title":"Quality Check On When Bulk Convert"},"creation_meta":{"description":"The creation meta of the project.","anyOf":[{"$ref":"#/components/schemas/ProjectCreationMetaResponseModel"},{"type":"null"}]},"source_type":{"description":"The source type of the project.","anyOf":[{"type":"string","enum":["blank","book","article","genfm","video","screenplay"]},{"type":"null"}],"title":"Source Type"},"chapters_enabled":{"description":"Whether chapters are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chapters Enabled"},"captions_enabled":{"description":"Whether captions are enabled for the project.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Captions Enabled"},"caption_style":{"description":"Global styling to be applied to all captions","anyOf":[{"$ref":"#/components/schemas/CaptionStyleModel"},{"type":"null"}]},"caption_style_template_overrides":{"description":"Styling changes that have been made to the provided templates","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/CaptionStyleModel"},"type":"object"},{"type":"null"}],"title":"Caption Style Template Overrides"},"public_share_id":{"description":"The public share ID of the project.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Share Id"},"aspect_ratio":{"description":"The aspect ratio of the project.","anyOf":[{"type":"string","enum":["16:9","9:16","4:5","1:1"]},{"type":"null"}],"title":"Aspect Ratio"},"agent_settings":{"description":"Agent-related settings for the project","anyOf":[{"$ref":"#/components/schemas/StudioAgentSettingsModel"},{"type":"null"}]},"default_title_voice_id":{"description":"The default title voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Title Voice Id"},"default_paragraph_voice_id":{"description":"The default paragraph voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Default Paragraph Voice Id"}},"example":{"access_level":"viewer","author":"John Doe","can_be_downloaded":true,"content_type":"Novel","cover_image_url":"https://example.com/cover.jpg","create_date_unix":1714204800,"created_by_user_id":"Vbtgl3bRdj6lk79rYAgx","creation_meta":{"creation_progress":0.5,"status":"pending","type":"blank"},"default_model_id":"eleven_multilingual_v2","default_paragraph_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_paragraph_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_id":"JBFqnCBsd6RMkjVDRZzb","default_title_voice_ref_id":"JBFqnCBsd6RMkjVDRZzb","description":"This is a description of my project.","fiction":"fiction","genres":["Novel","Short Story"],"isbn_number":"978-90-274-3964-2","language":"en","last_conversion_date_unix":1714204800,"mature_content":false,"name":"My Project","original_publication_date":"2025-01-01","project_id":"aw1NgEzBg83R7vgmiJt6","public_share_id":"abc123def456789","quality_check_on":false,"quality_check_on_when_bulk_convert":false,"state":"default","target_audience":"young adult","title":"My Project","volume_normalization":true},"required":["project_id","name","create_date_unix","created_by_user_id","default_title_voice_ref_id","default_paragraph_voice_ref_id","default_model_id","can_be_downloaded","volume_normalization","state","access_level","quality_check_on","quality_check_on_when_bulk_convert","default_title_voice_id","default_paragraph_voice_id"],"title":"ProjectResponseModel","x-fern-type-name":"ProjectResponse"},"ProjectSnapshotExtendedResponseModel":{"type":"object","properties":{"project_snapshot_id":{"description":"The ID of the project snapshot.","type":"string","title":"Project Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"created_at_unix":{"description":"The creation date of the project snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the project snapshot.","type":"string","title":"Name"},"audio_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Audio Upload"},"zip_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Zip Upload"},"character_alignments":{"type":"array","items":{"$ref":"#/components/schemas/CharacterAlignmentModel"},"title":"Character Alignments"},"audio_duration_secs":{"description":"The total duration of the audio in seconds.","type":"number","title":"Audio Duration Secs"}},"example":{"audio_duration_secs":123.45,"character_alignments":[],"created_at_unix":1714204800,"name":"My Project Snapshot","project_id":"aw1NgEzBg83R7vgmiJt6","project_snapshot_id":"aw1NgEzBg83R7vgmiJt6"},"required":["project_snapshot_id","project_id","created_at_unix","name","character_alignments","audio_duration_secs"],"title":"ProjectSnapshotExtendedResponseModel"},"ProjectSnapshotResponseModel":{"type":"object","properties":{"project_snapshot_id":{"description":"The ID of the project snapshot.","type":"string","title":"Project Snapshot Id"},"project_id":{"description":"The ID of the project.","type":"string","title":"Project Id"},"created_at_unix":{"description":"The creation date of the project snapshot.","type":"integer","title":"Created At Unix"},"name":{"description":"The name of the project snapshot.","type":"string","title":"Name"},"audio_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Audio Upload"},"zip_upload":{"description":"(Deprecated)","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Zip Upload"}},"example":{"created_at_unix":1714204800,"name":"My Project Snapshot","project_id":"aw1NgEzBg83R7vgmiJt6","project_snapshot_id":"aw1NgEzBg83R7vgmiJt6"},"required":["project_snapshot_id","project_id","created_at_unix","name"],"title":"ProjectSnapshotResponseModel","x-fern-type-name":"ProjectSnapshotResponse"},"ProjectSnapshotsResponseModel":{"type":"object","properties":{"snapshots":{"description":"List of project snapshots.","type":"array","items":{"$ref":"#/components/schemas/ProjectSnapshotResponseModel"},"title":"Snapshots"}},"example":{"snapshots":[{"created_at_unix":1714204800,"name":"My Project Snapshot","project_id":"aw1NgEzBg83R7vgmiJt6","project_snapshot_id":"aw1NgEzBg83R7vgmiJt6"}]},"required":["snapshots"],"title":"ProjectSnapshotsResponseModel","x-fern-type-name":"ProjectSnapshotsResponse"},"ProjectVideoResponseModel":{"type":"object","properties":{"video_id":{"type":"string","title":"Video Id"},"filename":{"type":"string","title":"Filename"},"signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Url"},"signed_preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Preview Url"},"offset_ms":{"type":"integer","title":"Offset Ms"},"duration_ms":{"type":"integer","title":"Duration Ms"},"volume_gain_db":{"type":"number","title":"Volume Gain Db"},"muted":{"type":"boolean","title":"Muted"},"fade_in_ms":{"type":"integer","default":0,"title":"Fade In Ms"},"fade_out_ms":{"type":"integer","default":0,"title":"Fade Out Ms"},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"codec":{"type":"string","title":"Codec"},"order":{"type":"string","title":"Order"},"created_at_ms":{"type":"integer","title":"Created At Ms"},"updated_at_ms":{"type":"integer","title":"Updated At Ms"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"thumbnail_interval_seconds":{"type":"number","title":"Thumbnail Interval Seconds"},"thumbnail_size":{"type":"array","items":{"type":"integer"},"maxItems":2,"minItems":2,"prefixItems":[{"type":"integer"},{"type":"integer"}],"title":"Thumbnail Size"},"thumbnail_sheets":{"type":"array","items":{"$ref":"#/components/schemas/ProjectVideoThumbnailSheetResponseModel"},"title":"Thumbnail Sheets"},"start_time_ms":{"type":"integer","title":"Start Time Ms"},"end_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time Ms"},"asset_preview_signed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Preview Signed Url"},"source_video_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Video Id"},"source_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Asset Id"},"source_platform_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Platform Asset Id"},"pending_blocks_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingBlocksMetadataModel"},{"type":"null"}]},"pending_external_audios_metadata":{"anyOf":[{"$ref":"#/components/schemas/PendingExternalAudiosMetadataModel"},{"type":"null"}]},"speech_imported":{"type":"boolean","default":false,"title":"Speech Imported"},"pending_task":{"anyOf":[{"$ref":"#/components/schemas/PendingClipTask"},{"type":"null"}]},"audio_track_ready":{"type":"boolean","default":true,"title":"Audio Track Ready"},"export_format_ready":{"type":"boolean","default":true,"title":"Export Format Ready"},"current_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Snapshot Id"},"source_context":{"anyOf":[{"$ref":"#/components/schemas/GenerationSourceContext"},{"type":"null"}]},"analysis":{"anyOf":[{"$ref":"#/components/schemas/VideoAnalysis"},{"type":"null"}]},"transcription":{"anyOf":[{"$ref":"#/components/schemas/AssetTranscription"},{"type":"null"}]},"type":{"type":"string","default":"video","const":"video","title":"Type"},"canvas_placement":{"$ref":"#/components/schemas/CanvasPlacement"},"animation":{"$ref":"#/components/schemas/ClipAnimation"},"playback_speed":{"type":"number","default":1,"title":"Playback Speed"},"opacity":{"type":"number","default":1,"maximum":1,"minimum":0,"title":"Opacity"},"track_id":{"type":"string","default":"v0","title":"Track Id"},"preview_job_progress":{"type":"number","readOnly":true,"title":"Preview Job Progress"},"import_speech_progress":{"anyOf":[{"type":"number"},{"type":"null"}],"readOnly":true,"title":"Import Speech Progress"}},"required":["video_id","filename","signed_url","signed_preview_url","offset_ms","duration_ms","volume_gain_db","muted","width","height","codec","order","created_at_ms","updated_at_ms","thumbnail_interval_seconds","thumbnail_size","thumbnail_sheets","start_time_ms","end_time_ms","preview_job_progress","import_speech_progress"],"title":"ProjectVideoResponseModel"},"ProjectVideoThumbnailSheetResponseModel":{"type":"object","properties":{"start_thumbnail_index":{"type":"integer","title":"Start Thumbnail Index"},"thumbnail_count":{"type":"integer","title":"Thumbnail Count"},"signed_cloud_url":{"type":"string","title":"Signed Cloud Url"}},"required":["start_thumbnail_index","thumbnail_count","signed_cloud_url"],"title":"ProjectVideoThumbnailSheetResponseModel"},"ProjectVoiceResponseModel":{"type":"object","properties":{"project_voice_ref_id":{"type":"string","title":"Project Voice Ref Id"},"voice_id":{"type":"string","title":"Voice Id"},"alias":{"type":"string","title":"Alias"},"stability":{"type":"number","title":"Stability"},"similarity_boost":{"type":"number","title":"Similarity Boost"},"style":{"type":"number","title":"Style"},"is_pinned":{"type":"boolean","title":"Is Pinned"},"use_speaker_boost":{"type":"boolean","title":"Use Speaker Boost"},"volume_gain":{"type":"number","title":"Volume Gain"},"speed":{"type":"number","title":"Speed"}},"required":["project_voice_ref_id","voice_id","alias","stability","similarity_boost","style","is_pinned","use_speaker_boost","volume_gain","speed"],"title":"ProjectVoiceResponseModel"},"PromptAgentAPIModel-Input":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","type":"string","default":"","title":"Prompt","x-convai-client-override":true},"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","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM","x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","type":"boolean","default":false,"title":"Enable Reasoning Summary"},"temperature":{"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).","default":0,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","type":"integer","default":-1,"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","type":"array","items":{"type":"string"},"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","$ref":"#/components/schemas/BuiltInTools-Input"},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","$ref":"#/components/schemas/RagConfig"},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","discriminator":{"propertyName":"preference","mapping":{"default":"#/components/schemas/BackupLLMDefault","disabled":"#/components/schemas/BackupLLMDisabled","override":"#/components/schemas/BackupLLMOverride"}},"oneOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","type":"number","default":4,"maximum":15,"minimum":2,"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Input"},{"$ref":"#/components/schemas/ClientToolConfig-Input"},{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"$ref":"#/components/schemas/MCPToolConfig-Input"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input","client":"#/components/schemas/ClientToolConfig-Input","mcp":"#/components/schemas/MCPToolConfig-Input","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Input","webhook":"#/components/schemas/WebhookToolConfig-Input"}}},"deprecated":true,"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModel"},"PromptAgentAPIModel-Output":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","type":"string","default":"","title":"Prompt","x-convai-client-override":true},"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","default":"gemini-2.5-flash","$ref":"#/components/schemas/LLM","x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","type":"boolean","default":false,"title":"Enable Reasoning Summary"},"temperature":{"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).","default":0,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","type":"integer","default":-1,"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","type":"array","items":{"type":"string"},"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","$ref":"#/components/schemas/BuiltInTools-Output"},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","type":"array","items":{"type":"string"},"maxItems":10,"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","$ref":"#/components/schemas/RagConfig"},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","discriminator":{"propertyName":"preference","mapping":{"default":"#/components/schemas/BackupLLMDefault","disabled":"#/components/schemas/BackupLLMDisabled","override":"#/components/schemas/BackupLLMOverride"}},"oneOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","type":"number","default":4,"maximum":15,"minimum":2,"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Output"},{"$ref":"#/components/schemas/ClientToolConfig-Output"},{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"$ref":"#/components/schemas/MCPToolConfig-Output"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output","client":"#/components/schemas/ClientToolConfig-Output","mcp":"#/components/schemas/MCPToolConfig-Output","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Output","webhook":"#/components/schemas/WebhookToolConfig-Output"}}},"deprecated":true,"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModel"},"PromptAgentAPIModelOverride-Input":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]},"title":"PromptAgentAPIModelOverride"},"PromptAgentAPIModelOverride-Output":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","tool_ids":[]},"title":"PromptAgentAPIModelOverride"},"PromptAgentAPIModelOverrideConfig":{"type":"object","properties":{"prompt":{"description":"Whether to allow overriding the prompt field.","type":"boolean","default":false,"title":"Prompt"},"llm":{"description":"Whether to allow overriding the llm field.","type":"boolean","default":false,"title":"Llm"},"tool_ids":{"description":"Whether to allow overriding the tool_ids field.","type":"boolean","default":false,"title":"Tool Ids"},"native_mcp_server_ids":{"description":"Whether to allow overriding the native_mcp_server_ids field.","type":"boolean","default":false,"title":"Native Mcp Server Ids"},"knowledge_base":{"description":"Whether to allow overriding the knowledge_base field.","type":"boolean","default":false,"title":"Knowledge Base"}},"title":"PromptAgentAPIModelOverrideConfig"},"PromptAgentAPIModelWorkflowOverride-Input":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Reasoning Summary"},"temperature":{"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).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","anyOf":[{"$ref":"#/components/schemas/BuiltInToolsWorkflowOverride-Input"},{"type":"null"}]},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","anyOf":[{"$ref":"#/components/schemas/RagConfigWorkflowOverride"},{"type":"null"}]},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","anyOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"},{"type":"null"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Input"},{"$ref":"#/components/schemas/ClientToolConfig-Input"},{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"$ref":"#/components/schemas/MCPToolConfig-Input"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Input","client":"#/components/schemas/ClientToolConfig-Input","mcp":"#/components/schemas/MCPToolConfig-Input","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Input","webhook":"#/components/schemas/WebhookToolConfig-Input"}}},"type":"array"},{"type":"null"}],"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModelWorkflowOverride"},"PromptAgentAPIModelWorkflowOverride-Output":{"type":"object","properties":{"prompt":{"description":"The prompt for the agent","anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","x-convai-client-override":true},"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","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}],"x-convai-client-override":true},"reasoning_effort":{"description":"Reasoning effort of the model. Only available for some models.","anyOf":[{"$ref":"#/components/schemas/LLMReasoningEffort"},{"type":"null"}]},"thinking_budget":{"description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Thinking Budget"},"enable_reasoning_summary":{"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Reasoning Summary"},"temperature":{"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).","anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"description":"If greater than 0, maximum number of tokens the LLM can predict","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"tool_ids":{"description":"A list of IDs of tools used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tool Ids","x-convai-client-override":true},"built_in_tools":{"description":"Built-in system tools to be used by the agent","anyOf":[{"$ref":"#/components/schemas/BuiltInToolsWorkflowOverride-Output"},{"type":"null"}]},"mcp_server_ids":{"description":"A list of MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mcp Server Ids"},"native_mcp_server_ids":{"description":"A list of Native MCP server ids to be used by the agent","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Native Mcp Server Ids","x-convai-client-override":true},"knowledge_base":{"description":"A list of knowledge bases to be used by the agent","anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"type":"array"},{"type":"null"}],"title":"Knowledge Base","x-convai-client-override":true},"custom_llm":{"description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'","anyOf":[{"$ref":"#/components/schemas/CustomLLM"},{"type":"null"}]},"ignore_default_personality":{"description":"Whether to remove the default personality lines from the system prompt","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ignore Default Personality"},"rag":{"description":"Configuration for RAG","anyOf":[{"$ref":"#/components/schemas/RagConfigWorkflowOverride"},{"type":"null"}]},"timezone":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"backup_llm_config":{"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","anyOf":[{"$ref":"#/components/schemas/BackupLLMDefault"},{"$ref":"#/components/schemas/BackupLLMDisabled"},{"$ref":"#/components/schemas/BackupLLMOverride"},{"type":"null"}],"title":"Backup Llm Config"},"cascade_timeout_seconds":{"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Cascade Timeout Seconds"},"tools":{"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Output"},{"$ref":"#/components/schemas/ClientToolConfig-Output"},{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"$ref":"#/components/schemas/MCPToolConfig-Output"},{"$ref":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output"},{"$ref":"#/components/schemas/SMBToolConfig"}],"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ApiIntegrationWebhookToolConfig-Output","client":"#/components/schemas/ClientToolConfig-Output","mcp":"#/components/schemas/MCPToolConfig-Output","smb":"#/components/schemas/SMBToolConfig","system":"#/components/schemas/SystemToolConfig-Output","webhook":"#/components/schemas/WebhookToolConfig-Output"}}},"type":"array"},{"type":"null"}],"title":"Tools"}},"example":{"knowledge_base":[],"llm":"gemini-2.0-flash-001","max_tokens":-1,"prompt":"You are a helpful assistant that can answer questions about the topic of the conversation.","temperature":0,"tool_ids":[],"tools":[]},"title":"PromptAgentAPIModelWorkflowOverride"},"PromptEvaluationCriteria":{"description":"An evaluation using the transcript and a prompt for a yes/no achieved answer","type":"object","properties":{"id":{"description":"The unique identifier for the evaluation criteria","type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"description":"The type of evaluation criteria","type":"string","default":"prompt","const":"prompt","title":"Type"},"conversation_goal_prompt":{"description":"The prompt that the agent should use to evaluate the conversation","type":"string","maxLength":2000,"title":"Conversation Goal Prompt"},"use_knowledge_base":{"description":"When evaluating the prompt, should the agent's knowledge base be used.","type":"boolean","default":false,"title":"Use Knowledge Base"},"scope":{"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.","default":"conversation","$ref":"#/components/schemas/AnalysisScope"},"llm":{"description":"LLM model to use for this evaluation criteria. If not set, uses agent's analysis_llm default.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"scoring_mode":{"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.","default":"binary","$ref":"#/components/schemas/CriteriaScoringMode"},"max_score":{"description":"Maximum value of the numeric score scale (minimum is always 0). Only used when scoring_mode is 'numeric_uniform'.","type":"integer","default":100,"title":"Max Score"},"score_instructions":{"description":"Optional free-text instructions describing how to assign values on the numeric scale. Only used when scoring_mode is 'numeric_uniform'.","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Score Instructions"}},"examples":[{"conversation_goal_prompt":"Determine whether the agent fully resolved the user's issue.","id":"criterion_binary_001","max_score":100,"name":"Issue resolved","scope":"conversation","scoring_mode":"binary","use_knowledge_base":false},{"conversation_goal_prompt":"Rate how completely and correctly the issue was resolved.","id":"criterion_numeric_001","max_score":100,"name":"Resolution quality","scope":"conversation","score_instructions":"0 means unresolved, 50 means partially resolved, 100 means fully resolved with correct details.","scoring_mode":"numeric_uniform","use_knowledge_base":false}],"required":["id","name","conversation_goal_prompt"],"title":"PromptEvaluationCriteria"},"PromptInjectionGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"}},"title":"PromptInjectionGuardrail"},"PronunciationDictionaryAliasRuleRequestModel":{"type":"object","properties":{"string_to_replace":{"description":"The string to replace. Must be a non-empty string.","type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule should match case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule should only match at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"description":"The type of the rule.","type":"string","const":"alias","title":"Type"},"alias":{"description":"The alias for the string to be replaced.","type":"string","title":"Alias"}},"example":{"alias":"tie-land","case_sensitive":true,"string_to_replace":"Thailand","type":"alias","word_boundaries":true},"required":["string_to_replace","type","alias"],"title":"PronunciationDictionaryAliasRuleRequestModel"},"PronunciationDictionaryAliasRuleResponseModel":{"type":"object","properties":{"string_to_replace":{"type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule matches case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule only matches at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"type":"string","const":"alias","title":"Type"},"alias":{"type":"string","title":"Alias"}},"required":["string_to_replace","type","alias"],"title":"PronunciationDictionaryAliasRuleResponseModel"},"PronunciationDictionaryLocatorResponseModel":{"type":"object","properties":{"pronunciation_dictionary_id":{"type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id","version_id"],"title":"PronunciationDictionaryLocatorResponseModel"},"PronunciationDictionaryPhonemeRuleRequestModel":{"type":"object","properties":{"string_to_replace":{"description":"The string to replace. Must be a non-empty string.","type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule should match case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule should only match at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"description":"The type of the rule.","type":"string","const":"phoneme","title":"Type"},"phoneme":{"description":"The phoneme rule.","type":"string","title":"Phoneme"},"alphabet":{"description":"The alphabet to use with the phoneme rule.","type":"string","title":"Alphabet"}},"example":{"alphabet":"ipa","case_sensitive":true,"phoneme":"/ˈtaɪ.lænd/","string_to_replace":"Thailand","type":"phoneme","word_boundaries":true},"required":["string_to_replace","type","phoneme","alphabet"],"title":"PronunciationDictionaryPhonemeRuleRequestModel"},"PronunciationDictionaryPhonemeRuleResponseModel":{"type":"object","properties":{"string_to_replace":{"type":"string","title":"String To Replace"},"case_sensitive":{"description":"Whether the rule matches case-sensitively.","type":"boolean","default":true,"title":"Case Sensitive"},"word_boundaries":{"description":"Whether the rule only matches at word boundaries.","type":"boolean","default":true,"title":"Word Boundaries"},"type":{"type":"string","const":"phoneme","title":"Type"},"phoneme":{"type":"string","title":"Phoneme"},"alphabet":{"type":"string","title":"Alphabet"}},"required":["string_to_replace","type","phoneme","alphabet"],"title":"PronunciationDictionaryPhonemeRuleResponseModel"},"PronunciationDictionaryRulesResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Id"},"version_id":{"description":"The version ID of the pronunciation dictionary.","type":"string","title":"Version Id"},"version_rules_num":{"description":"The number of rules in the version of the pronunciation dictionary.","type":"integer","title":"Version Rules Num"}},"example":{"id":"5xM3yVvZQKV0EfqQpLrJ","version_id":"5xM3yVvZQKV0EfqQpLr2","version_rules_num":5},"required":["id","version_id","version_rules_num"],"title":"PronunciationDictionaryRulesResponseModel"},"PronunciationDictionaryVersionLocatorDBModel":{"type":"object","properties":{"pronunciation_dictionary_id":{"type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id","version_id"],"title":"PronunciationDictionaryVersionLocatorDBModel","x-fern-type-name":"PronunciationDictionaryVersionLocator"},"PronunciationDictionaryVersionLocatorRequestModel":{"type":"object","properties":{"pronunciation_dictionary_id":{"description":"The ID of the pronunciation dictionary.","type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"description":"The ID of the version of the pronunciation dictionary. If not provided, the latest version will be used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id"],"title":"PronunciationDictionaryVersionLocatorRequestModel","x-fern-type-name":"PronunciationDictionaryVersionLocator"},"PronunciationDictionaryVersionResponseModel":{"type":"object","properties":{"version_id":{"type":"string","title":"Version Id"},"version_rules_num":{"type":"integer","title":"Version Rules Num"},"pronunciation_dictionary_id":{"type":"string","title":"Pronunciation Dictionary Id"},"dictionary_name":{"type":"string","title":"Dictionary Name"},"version_name":{"type":"string","title":"Version Name"},"permission_on_resource":{"anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Permission On Resource"},"created_by":{"type":"string","title":"Created By"},"creation_time_unix":{"type":"integer","title":"Creation Time Unix"},"archived_time_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Archived Time Unix"}},"required":["version_id","version_rules_num","pronunciation_dictionary_id","dictionary_name","version_name","permission_on_resource","created_by","creation_time_unix"],"title":"PronunciationDictionaryVersionResponseModel"},"PydanticPronunciationDictionaryVersionLocator":{"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.","type":"object","properties":{"pronunciation_dictionary_id":{"description":"The ID of the pronunciation dictionary","type":"string","title":"Pronunciation Dictionary Id"},"version_id":{"description":"The ID of the version of the pronunciation dictionary","anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Id"}},"required":["pronunciation_dictionary_id","version_id"],"title":"PydanticPronunciationDictionaryVersionLocator"},"QualityPresetType":{"type":"string","default":"standard","enum":["standard","high","ultra","ultra_lossless"]},"QueryParamsJsonSchema":{"type":"object","properties":{"properties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"minProperties":1,"title":"Properties"},"required":{"type":"array","items":{"type":"string"},"title":"Required"}},"additionalProperties":false,"required":["properties"],"title":"QueryParamsJsonSchema"},"QuoteInfo":{"type":"object","properties":{"amount_usd":{"description":"The quoted price for this item in USD. Use the order's total_amount_usd for the combined order total.","type":"number","title":"Amount Usd"}},"example":{"amount_usd":11},"required":["amount_usd"],"title":"QuoteInfo"},"RAGDocumentIndexResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"status":{"$ref":"#/components/schemas/RAGIndexStatus"},"progress_percentage":{"type":"number","title":"Progress Percentage"},"document_model_index_usage":{"$ref":"#/components/schemas/RAGDocumentIndexUsage"}},"required":["id","model","status","progress_percentage","document_model_index_usage"],"title":"RAGDocumentIndexResponseModel"},"RAGDocumentIndexUsage":{"type":"object","properties":{"used_bytes":{"type":"integer","title":"Used Bytes"}},"required":["used_bytes"],"title":"RAGDocumentIndexUsage"},"RAGDocumentIndexesResponseModel":{"type":"object","properties":{"indexes":{"type":"array","items":{"$ref":"#/components/schemas/RAGDocumentIndexResponseModel"},"title":"Indexes"}},"required":["indexes"],"title":"RAGDocumentIndexesResponseModel"},"RAGIndexBatchSuccessfulResponseModel":{"type":"object","properties":{"status":{"type":"string","default":"success","const":"success","title":"Status"},"data":{"$ref":"#/components/schemas/RAGDocumentIndexResponseModel"}},"required":["status","data"],"title":"RAGIndexBatchSuccessfulResponseModel"},"RAGIndexOverviewEmbeddingModelResponseModel":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"used_bytes":{"type":"integer","title":"Used Bytes"}},"required":["model","used_bytes"],"title":"RAGIndexOverviewEmbeddingModelResponseModel"},"RAGIndexOverviewResponseModel":{"type":"object","properties":{"total_used_bytes":{"type":"integer","title":"Total Used Bytes"},"total_max_bytes":{"type":"integer","title":"Total Max Bytes"},"models":{"type":"array","items":{"$ref":"#/components/schemas/RAGIndexOverviewEmbeddingModelResponseModel"},"title":"Models"}},"required":["total_used_bytes","total_max_bytes","models"],"title":"RAGIndexOverviewResponseModel"},"RAGIndexRequestModel":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"}},"required":["model"],"title":"RAGIndexRequestModel"},"RAGIndexStatus":{"type":"string","enum":["new","created","processing","failed","succeeded","rag_limit_exceeded","document_too_small","cannot_index_folder"],"title":"RAGIndexStatus"},"RagChunkMetadata":{"type":"object","properties":{"document_id":{"type":"string","title":"Document Id"},"chunk_id":{"type":"string","title":"Chunk Id"},"vector_distance":{"type":"number","title":"Vector Distance"}},"required":["document_id","chunk_id","vector_distance"],"title":"RagChunkMetadata"},"RagConfig":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"embedding_model":{"default":"e5_mistral_7b_instruct","$ref":"#/components/schemas/EmbeddingModelEnum"},"max_vector_distance":{"description":"Maximum vector distance of retrieved chunks.","type":"number","default":0.6,"examples":[0.5],"exclusiveMaximum":1,"exclusiveMinimum":0,"title":"Max Vector Distance"},"max_documents_length":{"description":"Maximum total length of document chunks retrieved from RAG.","type":"integer","default":50000,"examples":["50000"],"exclusiveMaximum":10000000,"exclusiveMinimum":0,"title":"Max Documents Length"},"max_retrieved_rag_chunks_count":{"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.","type":"integer","default":20,"examples":[5],"exclusiveMinimum":0,"maximum":20,"title":"Max Retrieved Rag Chunks Count"},"num_candidates":{"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.","anyOf":[{"type":"integer","maximum":10000,"exclusiveMinimum":0},{"type":"null"}],"examples":[300],"title":"Num Candidates"},"query_rewrite_prompt_override":{"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.","anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"examples":["You are given a conversation between a user and an assistant. Rewrite the last question to be self-contained and clear."],"title":"Query Rewrite Prompt Override"}},"title":"RagConfig"},"RagConfigWorkflowOverride":{"type":"object","properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"embedding_model":{"anyOf":[{"$ref":"#/components/schemas/EmbeddingModelEnum"},{"type":"null"}]},"max_vector_distance":{"description":"Maximum vector distance of retrieved chunks.","anyOf":[{"type":"number"},{"type":"null"}],"examples":[0.5],"title":"Max Vector Distance"},"max_documents_length":{"description":"Maximum total length of document chunks retrieved from RAG.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":["50000"],"title":"Max Documents Length"},"max_retrieved_rag_chunks_count":{"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.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[5],"title":"Max Retrieved Rag Chunks Count"},"num_candidates":{"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.","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[300],"title":"Num Candidates"},"query_rewrite_prompt_override":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["You are given a conversation between a user and an assistant. Rewrite the last question to be self-contained and clear."],"title":"Query Rewrite Prompt Override"}},"title":"RagConfigWorkflowOverride"},"RagRetrievalInfo":{"type":"object","properties":{"chunks":{"type":"array","items":{"$ref":"#/components/schemas/RagChunkMetadata"},"title":"Chunks"},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"retrieval_query":{"type":"string","title":"Retrieval Query"},"rag_latency_secs":{"type":"number","title":"Rag Latency Secs"},"used_chunk_ids":{"type":"array","items":{"type":"string"},"title":"Used Chunk Ids"}},"required":["chunks","embedding_model","retrieval_query","rag_latency_secs"],"title":"RagRetrievalInfo"},"ReadLegalTerms":{"type":"object","properties":{"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}},"title":"ReadLegalTerms"},"ReadMetadataChapterDBModel":{"type":"object","properties":{"chapter_name":{"type":"string","title":"Chapter Name"},"word_count":{"type":"integer","title":"Word Count"},"char_count":{"type":"integer","title":"Char Count"},"starting_char_offset":{"type":"integer","title":"Starting Char Offset"},"has_parsed_html":{"type":"boolean","default":false,"title":"Has Parsed Html"},"has_summary":{"type":"boolean","default":false,"title":"Has Summary"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"file_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Number"},"is_fallback_name":{"type":"boolean","default":false,"title":"Is Fallback Name"},"chapter_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chapter Id"}},"required":["chapter_name","word_count","char_count","starting_char_offset"],"title":"ReadMetadataChapterDBModel"},"ReaderResourceResponseModel":{"type":"object","properties":{"resource_type":{"description":"The type of resource.","type":"string","enum":["read","collection"],"title":"Resource Type"},"resource_id":{"description":"The ID of the resource.","type":"string","title":"Resource Id"}},"example":{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"},"required":["resource_type","resource_id"],"title":"ReaderResourceResponseModel"},"RealtimeConfigSnapshot":{"type":"object","properties":{"_id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"conversation_id":{"type":"string","title":"Conversation Id"},"seq_no":{"type":"integer","title":"Seq No"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"},"time_committed_secs":{"type":"integer","title":"Time Committed Secs"},"source_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Id"},"parents":{"$ref":"#/components/schemas/RealtimeConfigSnapshotParents"},"session_config":{"$ref":"#/components/schemas/OpenAISessionConfig"},"safety":{"$ref":"#/components/schemas/SafetyCommonModel-Output"},"changed_paths":{"type":"array","items":{"type":"string"},"title":"Changed Paths"}},"required":["_id","workspace_id","conversation_id","seq_no","time_in_call_secs","time_committed_secs","parents","session_config","safety"],"title":"RealtimeConfigSnapshot"},"RealtimeConfigSnapshotParents":{"type":"object","properties":{"previous_snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Snapshot Id"}},"title":"RealtimeConfigSnapshotParents"},"RecordingResponseModel":{"type":"object","properties":{"recording_id":{"description":"The ID of the recording.","type":"string","title":"Recording Id"},"mime_type":{"description":"The MIME type of the recording.","type":"string","title":"Mime Type"},"size_bytes":{"description":"The size of the recording in bytes.","type":"integer","title":"Size Bytes"},"upload_date_unix":{"description":"The date of the recording in Unix time.","type":"integer","title":"Upload Date Unix"},"transcription":{"description":"The transcription of the recording.","type":"string","title":"Transcription"}},"example":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"required":["recording_id","mime_type","size_bytes","upload_date_unix","transcription"],"title":"RecordingResponseModel","x-fern-type-name":"RecordingResponse"},"ReferenceVideo":{"type":"object","properties":{"generation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generation Id"},"content_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Asset Id"},"template_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Node Id"},"studio_clip":{"anyOf":[{"$ref":"#/components/schemas/StudioClipReference"},{"type":"null"}]}},"title":"ReferenceVideo"},"ReferencedToolCommonModel":{"description":"Reference to a tool for unit test evaluation.","type":"object","properties":{"id":{"description":"The ID of the tool","type":"string"},"type":{"description":"The type of the tool","type":"string","enum":["system","webhook","client","workflow","api_integration_webhook","mcp","code"]}},"required":["id","type"],"title":"ReferencedToolCommonModel"},"RefreshTokenAuthResponse":{"description":"Response model for OAuth2 refresh-token-grant auth connections","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"refresh_token_auth","const":"refresh_token_auth","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"client_id":{"type":"string","title":"Client Id"},"token_url":{"type":"string","title":"Token Url"},"scopes":{"type":"array","items":{"type":"string"},"default":[],"title":"Scopes"},"extra_params":{"type":"object","default":{},"additionalProperties":{"type":"string"},"title":"Extra Params"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","client_id","token_url","id"],"title":"RefreshTokenAuthResponse"},"RegexParameterEvaluationStrategy":{"type":"object","properties":{"type":{"type":"string","const":"regex","title":"Type"},"pattern":{"description":"A regex pattern to match the agent's response against.","type":"string","title":"Pattern"}},"required":["type","pattern"],"title":"RegexParameterEvaluationStrategy"},"RegionConfigRequest":{"type":"object","properties":{"region_id":{"description":"Region ID","$ref":"#/components/schemas/TwilioRegionId"},"token":{"description":"Auth Token for this region","type":"string","title":"Token"},"edge_location":{"description":"Edge location for this region","$ref":"#/components/schemas/TwilioEdgeLocation"}},"required":["region_id","token","edge_location"],"title":"RegionConfigRequest"},"RegionalProcessingSurchargeInfo":{"type":"object","properties":{"multiplier":{"description":"The surcharge multiplier applied to this model's pricing (e.g. 1.1 for a 10% surcharge).","type":"number","title":"Multiplier"}},"example":{"multiplier":1.1},"required":["multiplier"],"title":"RegionalProcessingSurchargeInfo"},"RegisterForGroupSessionParams":{"description":"Register a client for a scheduled group session.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"register_for_group_session","const":"register_for_group_session","title":"Smb Tool Type"}},"title":"RegisterForGroupSessionParams"},"RegisterMediaResponse":{"type":"object","properties":{"media_id":{"description":"The ID of the uploaded media file.","$ref":"#/components/schemas/MediaId"}},"example":{"media_id":"prodmedia_01jgb2zd68f8f9tfvbb968wb8z"},"required":["media_id"],"title":"RegisterMediaResponse"},"RemoveOrderItemResponse":{"type":"object","properties":{"success":{"description":"Whether the item was successfully removed.","type":"boolean","title":"Success"}},"example":{"success":true},"required":["success"],"title":"RemoveOrderItemResponse"},"Render":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"version":{"type":"integer","title":"Version"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"type":{"anyOf":[{"$ref":"#/components/schemas/RenderType"},{"type":"null"}]},"media_ref":{"anyOf":[{"$ref":"#/components/schemas/DubbingMediaReference"},{"type":"null"}]},"status":{"type":"string","enum":["complete","processing","failed"],"title":"Status"}},"required":["id","version","language","type","media_ref","status"],"title":"Render"},"RenderType":{"type":"string","enum":["mp4","aac","mp3","wav","aaf","tracks_zip","clips_zip","zip"],"title":"RenderType"},"ReportKnowledgeGapParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"report_knowledge_gap","const":"report_knowledge_gap","title":"Smb Tool Type"}},"title":"ReportKnowledgeGapParams"},"RequestPVCManualVerificationResponseModel":{"type":"object","properties":{"status":{"description":"The status of the request PVC manual verification request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"RequestPVCManualVerificationResponseModel"},"RequiredConstraint":{"description":"A set of fields that must all be present to satisfy this constraint.","type":"object","properties":{"required":{"type":"array","items":{"type":"string"},"title":"Required"}},"required":["required"],"title":"RequiredConstraint"},"RequiredConstraints":{"description":"Wrapper for anyOf/allOf composition constraints scoped to required fields.","type":"object","properties":{"any_of":{"type":"array","items":{"$ref":"#/components/schemas/RequiredConstraint"},"title":"Any Of"},"all_of":{"type":"array","items":{"$ref":"#/components/schemas/RequiredConstraint"},"title":"All Of"}},"title":"RequiredConstraints"},"ResourceAccessInfo":{"type":"object","properties":{"is_creator":{"description":"Whether the user making the request is the creator of the agent","type":"boolean","title":"Is Creator"},"creator_name":{"description":"Name of the agent's creator","type":"string","title":"Creator Name"},"creator_email":{"description":"Email of the agent's creator","type":"string","title":"Creator Email"},"role":{"description":"The role of the user making the request","type":"string","enum":["admin","editor","commenter","viewer"],"title":"Role"},"anonymous_access_level_override":{"description":"The access level for anonymous users. If None, the resource is not shared publicly.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Anonymous Access Level Override"},"access_source":{"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.","anyOf":[{"type":"string","enum":["creator","explicit","workspace_admin","workspace_default"]},{"type":"null"}],"title":"Access Source"}},"example":{"access_source":"creator","creator_email":"john.doe@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"required":["is_creator","creator_name","creator_email","role"],"title":"ResourceAccessInfo"},"ResourceMetadataResponseModel":{"type":"object","properties":{"resource_id":{"description":"The ID of the resource.","type":"string","title":"Resource Id"},"resource_name":{"description":"The name of the resource, if available.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Name"},"resource_type":{"description":"The type of the resource.","$ref":"#/components/schemas/WorkspaceResourceType"},"creator_user_id":{"description":"The ID of the user who created the resource.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator User Id"},"anonymous_access_level_override":{"description":"The access level for anonymous users. If None, the resource is not shared publicly.","anyOf":[{"type":"string","enum":["admin","editor","commenter","viewer"]},{"type":"null"}],"title":"Anonymous Access Level Override"},"role_to_group_ids":{"description":"A mapping of roles to group IDs. When the resource is shared with a user, the group id is the user's id.","type":"object","additionalProperties":{"items":{"type":"string"},"type":"array"},"propertyNames":{"enum":["admin","editor","commenter","viewer"]},"title":"Role To Group Ids"},"share_options":{"description":"List of options for sharing the resource further in the workspace. These are users who don't have access to the resource yet.","type":"array","items":{"$ref":"#/components/schemas/ShareOptionResponseModel"},"title":"Share Options"}},"example":{"anonymous_access_level_override":"viewer","creator_user_id":"5zavrE1kZXv2lFw9BKgEkf0B5Wqo","resource_id":"4ZUqyldxf71HqUbcP2Lc","resource_name":"My Custom Voice","resource_type":"voice","role_to_group_ids":{"admin":["5zavrE1kZXv2lFw9BKgEkf0B5Wqo"],"editor":["8ruQDGM2R4w1mFbHI5aROCUjIpJZ"],"viewer":[]},"share_options":[{"id":"i2YYI6huwBmcgYydAXARmQJc3pmX","name":"user@example.com","type":"user"},{"id":"x1AfvYKAmiqxCnbvZeNXHqqthJaC","name":"mygroup","type":"group"}]},"required":["resource_id","resource_name","resource_type","creator_user_id","anonymous_access_level_override","role_to_group_ids","share_options"],"title":"ResourceMetadataResponseModel"},"ResponseFilter":{"description":"Configuration for filtering tool responses before they are visible to the agent.","type":"object","properties":{"mode":{"description":"Controls how tool responses are filtered. 'all' returns entire response, 'allow' returns only specified paths, 'hide_all' hides the entire response.","default":"all","$ref":"#/components/schemas/ResponseFilterMode"},"filters":{"description":"Dot notation paths to include when mode is 'allow' (e.g., ['ticket.id', 'ticket.status']).","type":"array","items":{"type":"string"},"title":"Filters"},"content_type":{"description":"Content type for response filtering. Only 'application/json' responses are filtered.","type":"string","default":"application/json","const":"application/json","title":"Content Type"}},"title":"ResponseFilter"},"ResponseFilterMode":{"description":"Controls how tool responses are filtered before being visible to the agent.","type":"string","default":"all","enum":["all","allow","hide_all"],"title":"ResponseFilterMode"},"ResponseUnitTestModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"}},"title":"ResponseUnitTestModel"},"RestoreCalendarEventParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"restore_calendar_event","const":"restore_calendar_event","title":"Smb Tool Type"}},"title":"RestoreCalendarEventParams"},"ResubmitTestsRequestModel":{"type":"object","properties":{"test_run_ids":{"description":"List of test run IDs to resubmit","type":"array","items":{"type":"string"},"maxItems":5000,"minItems":1,"title":"Test Run Ids"},"agent_config_override":{"description":"Configuration overrides to use for testing. If not provided, the agent's default configuration will be used.","anyOf":[{"$ref":"#/components/schemas/AdhocAgentConfigOverrideForTestRequestModel"},{"type":"null"}]},"agent_id":{"description":"Agent ID to resubmit tests for","type":"string","title":"Agent Id"},"branch_id":{"description":"ID of the branch to run the tests on. If not provided, the tests will be run on the agent's main branch.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"required":["test_run_ids","agent_id"],"title":"ResubmitTestsRequestModel"},"RetryTriggerAction":{"type":"object","properties":{"type":{"type":"string","default":"retry","const":"retry","title":"Type"},"feedback":{"description":"Custom feedback to inject into the agent when retrying after guardrail trigger.","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?\".","title":"Feedback"}},"title":"RetryTriggerAction"},"ReviewResponseModel":{"type":"object","properties":{"review_status":{"type":"string","enum":["approved","edits_required","rejected"],"title":"Review Status"},"reviewed_at_unix":{"type":"integer","title":"Reviewed At Unix"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"reject_reasons":{"anyOf":[{"items":{"type":"string","enum":["lacks_structure","doesnt_open","not_literary_work","language_not_supported","too_short","duplicate","promotional","formatting_issues","low_quality","metadata_incomplete","metadata_inaccurate","typos","review_error","spam","legal_violation","content_policy","public_domain","other"]},"type":"array"},{"type":"null"}],"title":"Reject Reasons"},"scores_breakdown":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Scores Breakdown"},"rejected_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejected Details"},"explanation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explanation"}},"required":["review_status","reviewed_at_unix"],"title":"ReviewResponseModel"},"RunAgentTestsRequestModel":{"type":"object","properties":{"tests":{"description":"List of tests to run on the agent","type":"array","items":{"$ref":"#/components/schemas/SingleTestRunRequestModel"},"maxItems":5000,"minItems":1,"title":"Tests"},"agent_config_override":{"description":"Configuration overrides to use for testing. If not provided, the agent's default configuration will be used.","anyOf":[{"$ref":"#/components/schemas/AdhocAgentConfigOverrideForTestRequestModel"},{"type":"null"}]},"branch_id":{"description":"ID of the branch to run the tests on. If not provided, the tests will be run on the agent's main branch.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"repeat_count":{"description":"Number of times to run each test. When greater than 1, results are grouped and summarized.","type":"integer","default":1,"maximum":50,"minimum":1,"title":"Repeat Count"}},"required":["tests"],"title":"RunAgentTestsRequestModel"},"RunConversationEvaluationsRequest":{"type":"object","properties":{"evaluation_id":{"description":"ID of the single evaluation criterion to rerun.","type":"string","title":"Evaluation Id"},"scope":{"default":"conversation","$ref":"#/components/schemas/AnalysisScope"}},"required":["evaluation_id"],"title":"RunConversationEvaluationsRequest"},"RunSubagentToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"run_subagent","const":"run_subagent","title":"System Tool Type"},"agents":{"type":"array","items":{"$ref":"#/components/schemas/SubAgent-Input"},"title":"Agents"}},"required":["agents"],"title":"RunSubagentToolConfig"},"RunSubagentToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"run_subagent","const":"run_subagent","title":"System Tool Type"},"agents":{"type":"array","items":{"$ref":"#/components/schemas/SubAgent-Output"},"title":"Agents"}},"required":["agents"],"title":"RunSubagentToolConfig"},"RunSubagentToolResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"run_subagent_error","const":"run_subagent_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"error":{"type":"string","title":"Error"}},"required":["error"],"title":"RunSubagentToolResultErrorModel"},"RunSubagentToolResultSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"run_subagent_success","const":"run_subagent_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"query":{"type":"string","title":"Query"},"agent_response":{"type":"string","title":"Agent Response"}},"required":["query","agent_response"],"title":"RunSubagentToolResultSuccessModel"},"SIPLogMessage":{"type":"object","properties":{"call_id":{"type":"string","title":"Call Id"},"phone_numbers":{"type":"array","items":{"type":"string"},"title":"Phone Numbers"},"local_address":{"type":"string","title":"Local Address"},"remote_address":{"type":"string","title":"Remote Address"},"transport":{"type":"string","title":"Transport"},"raw_message":{"type":"string","title":"Raw Message"},"error_message":{"type":"string","title":"Error Message"},"direction":{"$ref":"#/components/schemas/SIPLogMessageDirection"},"created_at_unix_micro":{"type":"integer","title":"Created At Unix Micro"}},"required":["call_id","phone_numbers","local_address","remote_address","transport","raw_message","error_message","direction","created_at_unix_micro"],"title":"SIPLogMessage"},"SIPLogMessageDirection":{"type":"string","enum":["in","out"],"title":"SIPLogMessageDirection"},"SIPMediaEncryptionEnum":{"type":"string","default":"allowed","enum":["disabled","allowed","required"],"title":"SIPMediaEncryptionEnum"},"SIPTrunkCredentialsRequestModel":{"type":"object","properties":{"username":{"description":"SIP trunk username","type":"string","title":"Username"},"password":{"description":"SIP trunk password - if not specified, then remain unchanged","anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"required":["username"],"title":"SIPTrunkCredentialsRequestModel"},"SIPTrunkOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"sip_call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sip Call Id"}},"required":["success","message","conversation_id","sip_call_id"],"title":"SIPTrunkOutboundCallResponse"},"SIPTrunkTransportEnum":{"type":"string","default":"auto","enum":["auto","udp","tcp","tls"],"title":"SIPTrunkTransportEnum"},"SIPUriDynamicVariableTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"sip_uri_dynamic_variable","const":"sip_uri_dynamic_variable","title":"Type"},"sip_uri":{"type":"string","title":"Sip Uri"}},"required":["sip_uri"],"title":"SIPUriDynamicVariableTransferDestination"},"SIPUriTransferDestination":{"type":"object","properties":{"type":{"type":"string","default":"sip_uri","const":"sip_uri","title":"Type"},"sip_uri":{"type":"string","title":"Sip Uri"}},"required":["sip_uri"],"title":"SIPUriTransferDestination"},"SMBToolConfig":{"description":"SMB tool configuration that wraps SMB tool parameters.","type":"object","properties":{"type":{"description":"Tool type identifier","type":"string","default":"smb","const":"smb","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","default":"","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete.","type":"integer","default":20,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"enabled":{"description":"Whether this tool is enabled for the agent","type":"boolean","default":true,"title":"Enabled"},"params":{"discriminator":{"propertyName":"smb_tool_type","mapping":{"cancel_calendar_event":"#/components/schemas/CancelCalendarEventParams","cancel_group_session_for_all":"#/components/schemas/CancelGroupSessionForAllParams","cancel_group_session_registration":"#/components/schemas/CancelGroupSessionRegistrationParams","check_service_availability":"#/components/schemas/CheckServiceAvailabilityParams","create_agent_procedure":"#/components/schemas/CreateAgentProcedureParams","create_agent_rule":"#/components/schemas/CreateAgentRuleParams","create_asset":"#/components/schemas/CreateAssetParams","create_client":"#/components/schemas/CreateClientParams","create_client_appointment":"#/components/schemas/CreateClientAppointmentParams","create_client_interaction":"#/components/schemas/CreateClientInteractionParams","create_holiday":"#/components/schemas/CreateHolidayParams","create_location":"#/components/schemas/CreateLocationParams","create_product":"#/components/schemas/CreateProductParams","create_service":"#/components/schemas/CreateServiceParams","create_staff":"#/components/schemas/CreateStaffParams","delete_agent_procedure":"#/components/schemas/DeleteAgentProcedureParams","delete_agent_rule":"#/components/schemas/DeleteAgentRuleParams","delete_asset":"#/components/schemas/DeleteAssetParams","delete_calendar_event":"#/components/schemas/DeleteCalendarEventParams","delete_client":"#/components/schemas/DeleteClientParams","delete_client_interaction":"#/components/schemas/DeleteClientInteractionParams","delete_group_session":"#/components/schemas/DeleteGroupSessionParams","delete_holiday":"#/components/schemas/DeleteHolidayParams","delete_location":"#/components/schemas/DeleteLocationParams","delete_product":"#/components/schemas/DeleteProductParams","delete_service":"#/components/schemas/DeleteServiceParams","delete_staff":"#/components/schemas/DeleteStaffParams","get_analytics_summary":"#/components/schemas/GetAnalyticsSummaryParams","get_appointment_by_confirmation_number":"#/components/schemas/GetAppointmentByConfirmationNumberParams","get_booking_page_settings":"#/components/schemas/GetBookingPageSettingsParams","get_booking_slug_status":"#/components/schemas/GetBookingSlugStatusParams","get_client_appointments":"#/components/schemas/GetClientAppointmentsParams","get_client_by_phone":"#/components/schemas/GetClientByPhoneParams","get_schedule":"#/components/schemas/GetScheduleParams","leave_message":"#/components/schemas/LeaveMessageParams","list_agent_procedures":"#/components/schemas/ListAgentProceduresParams","list_agent_references":"#/components/schemas/ListAgentReferencesParams","list_agent_rules":"#/components/schemas/ListAgentRulesParams","list_assets":"#/components/schemas/ListAssetsParams","list_calendar_events":"#/components/schemas/ListCalendarEventsParams","list_client_interactions":"#/components/schemas/ListClientInteractionsParams","list_clients":"#/components/schemas/ListClientsParams","list_customer_facing_agents":"#/components/schemas/ListCustomerFacingAgentsParams","list_group_sessions":"#/components/schemas/ListGroupSessionsParams","list_holidays":"#/components/schemas/ListHolidaysParams","list_locations":"#/components/schemas/ListLocationsParams","list_products":"#/components/schemas/ListProductsParams","list_services":"#/components/schemas/ListServicesParams","list_staff":"#/components/schemas/ListStaffParams","opt_in_sms_reminder":"#/components/schemas/OptInSmsReminderParams","opt_out_sms_reminder":"#/components/schemas/OptOutSmsReminderParams","register_for_group_session":"#/components/schemas/RegisterForGroupSessionParams","report_knowledge_gap":"#/components/schemas/ReportKnowledgeGapParams","restore_calendar_event":"#/components/schemas/RestoreCalendarEventParams","schedule_group_session":"#/components/schemas/ScheduleGroupSessionParams","search_clients":"#/components/schemas/SearchClientsParams","set_booking_slug":"#/components/schemas/SetBookingSlugParams","submit_business_info":"#/components/schemas/SubmitBusinessInfoParams","update_agent_procedure":"#/components/schemas/UpdateAgentProcedureParams","update_agent_rule":"#/components/schemas/UpdateAgentRuleParams","update_asset":"#/components/schemas/UpdateAssetParams","update_booking_page_appearance":"#/components/schemas/UpdateBookingPageAppearanceParams","update_booking_page_settings":"#/components/schemas/UpdateBookingPageSettingsParams","update_business_info":"#/components/schemas/UpdateBusinessInfoParams","update_calendar_event":"#/components/schemas/UpdateCalendarEventParams","update_client":"#/components/schemas/UpdateClientParams","update_customer_facing_config":"#/components/schemas/UpdateCustomerFacingConfigParams","update_group_session_seats":"#/components/schemas/UpdateGroupSessionSeatsParams","update_holiday":"#/components/schemas/UpdateHolidayParams","update_location":"#/components/schemas/UpdateLocationParams","update_product":"#/components/schemas/UpdateProductParams","update_service":"#/components/schemas/UpdateServiceParams","update_staff":"#/components/schemas/UpdateStaffParams"}},"oneOf":[{"$ref":"#/components/schemas/SearchClientsParams"},{"$ref":"#/components/schemas/ListClientsParams"},{"$ref":"#/components/schemas/GetClientByPhoneParams"},{"$ref":"#/components/schemas/CreateClientParams"},{"$ref":"#/components/schemas/UpdateClientParams"},{"$ref":"#/components/schemas/DeleteClientParams"},{"$ref":"#/components/schemas/ListStaffParams"},{"$ref":"#/components/schemas/CreateStaffParams"},{"$ref":"#/components/schemas/UpdateStaffParams"},{"$ref":"#/components/schemas/DeleteStaffParams"},{"$ref":"#/components/schemas/ListAssetsParams"},{"$ref":"#/components/schemas/CreateAssetParams"},{"$ref":"#/components/schemas/UpdateAssetParams"},{"$ref":"#/components/schemas/DeleteAssetParams"},{"$ref":"#/components/schemas/ListServicesParams"},{"$ref":"#/components/schemas/CreateServiceParams"},{"$ref":"#/components/schemas/UpdateServiceParams"},{"$ref":"#/components/schemas/DeleteServiceParams"},{"$ref":"#/components/schemas/ListProductsParams"},{"$ref":"#/components/schemas/CreateProductParams"},{"$ref":"#/components/schemas/UpdateProductParams"},{"$ref":"#/components/schemas/DeleteProductParams"},{"$ref":"#/components/schemas/CheckServiceAvailabilityParams"},{"$ref":"#/components/schemas/CreateClientAppointmentParams"},{"$ref":"#/components/schemas/GetClientAppointmentsParams"},{"$ref":"#/components/schemas/GetAppointmentByConfirmationNumberParams"},{"$ref":"#/components/schemas/ListGroupSessionsParams"},{"$ref":"#/components/schemas/ScheduleGroupSessionParams"},{"$ref":"#/components/schemas/RegisterForGroupSessionParams"},{"$ref":"#/components/schemas/CancelGroupSessionRegistrationParams"},{"$ref":"#/components/schemas/UpdateGroupSessionSeatsParams"},{"$ref":"#/components/schemas/CancelGroupSessionForAllParams"},{"$ref":"#/components/schemas/DeleteGroupSessionParams"},{"$ref":"#/components/schemas/ListCalendarEventsParams"},{"$ref":"#/components/schemas/UpdateCalendarEventParams"},{"$ref":"#/components/schemas/CancelCalendarEventParams"},{"$ref":"#/components/schemas/RestoreCalendarEventParams"},{"$ref":"#/components/schemas/DeleteCalendarEventParams"},{"$ref":"#/components/schemas/ListCustomerFacingAgentsParams"},{"$ref":"#/components/schemas/ListAgentRulesParams"},{"$ref":"#/components/schemas/CreateAgentRuleParams"},{"$ref":"#/components/schemas/UpdateAgentRuleParams"},{"$ref":"#/components/schemas/DeleteAgentRuleParams"},{"$ref":"#/components/schemas/ListAgentProceduresParams"},{"$ref":"#/components/schemas/ListAgentReferencesParams"},{"$ref":"#/components/schemas/CreateAgentProcedureParams"},{"$ref":"#/components/schemas/UpdateAgentProcedureParams"},{"$ref":"#/components/schemas/DeleteAgentProcedureParams"},{"$ref":"#/components/schemas/ListHolidaysParams"},{"$ref":"#/components/schemas/CreateHolidayParams"},{"$ref":"#/components/schemas/UpdateHolidayParams"},{"$ref":"#/components/schemas/DeleteHolidayParams"},{"$ref":"#/components/schemas/GetScheduleParams"},{"$ref":"#/components/schemas/SubmitBusinessInfoParams"},{"$ref":"#/components/schemas/UpdateBusinessInfoParams"},{"$ref":"#/components/schemas/UpdateCustomerFacingConfigParams"},{"$ref":"#/components/schemas/GetAnalyticsSummaryParams"},{"$ref":"#/components/schemas/GetBookingPageSettingsParams"},{"$ref":"#/components/schemas/UpdateBookingPageSettingsParams"},{"$ref":"#/components/schemas/UpdateBookingPageAppearanceParams"},{"$ref":"#/components/schemas/GetBookingSlugStatusParams"},{"$ref":"#/components/schemas/SetBookingSlugParams"},{"$ref":"#/components/schemas/ListClientInteractionsParams"},{"$ref":"#/components/schemas/CreateClientInteractionParams"},{"$ref":"#/components/schemas/DeleteClientInteractionParams"},{"$ref":"#/components/schemas/ListLocationsParams"},{"$ref":"#/components/schemas/CreateLocationParams"},{"$ref":"#/components/schemas/UpdateLocationParams"},{"$ref":"#/components/schemas/DeleteLocationParams"},{"$ref":"#/components/schemas/LeaveMessageParams"},{"$ref":"#/components/schemas/ReportKnowledgeGapParams"},{"$ref":"#/components/schemas/OptInSmsReminderParams"},{"$ref":"#/components/schemas/OptOutSmsReminderParams"}],"title":"Params"}},"examples":[{"description":"","enabled":true,"name":"search_clients","params":{"smb_tool_type":"search_clients"},"type":"smb"}],"required":["name","params"],"title":"SMBToolConfig","x-fern-ignore":true},"SMSConversationInfo":{"type":"object","properties":{"direction":{"type":"string","enum":["inbound","outbound"],"title":"Direction"},"phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number Id"},"sms_user_phone_number":{"type":"string","title":"Sms User Phone Number"},"agent_phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Phone Number"}},"required":["direction","sms_user_phone_number"],"title":"SMSConversationInfo"},"SafetyCommonModel-Input":{"description":"Safety object that has the information of safety evaluations based on used voice.","type":"object","properties":{"ivc":{"$ref":"#/components/schemas/SafetyEvaluation"},"non_ivc":{"$ref":"#/components/schemas/SafetyEvaluation"}},"title":"SafetyCommonModel"},"SafetyCommonModel-Output":{"description":"Safety object that has the information of safety evaluations based on used voice.","type":"object","properties":{"ivc":{"$ref":"#/components/schemas/SafetyEvaluation"},"non_ivc":{"$ref":"#/components/schemas/SafetyEvaluation"}},"title":"SafetyCommonModel"},"SafetyEvaluation":{"description":"Safety evaluation of the agent. Prompt and first message is taken into account.\nThe unsafe reason is provided from the evaluation","type":"object","properties":{"is_unsafe":{"type":"boolean","default":false,"title":"Is Unsafe"},"llm_reason":{"type":"string","default":"","title":"Llm Reason"},"safety_prompt_version":{"type":"integer","default":0,"title":"Safety Prompt Version"},"matched_rule_id":{"type":"array","items":{"$ref":"#/components/schemas/SafetyRule"},"title":"Matched Rule Id"}},"title":"SafetyEvaluation"},"SafetyResponseModel":{"type":"object","properties":{"is_blocked_ivc":{"type":"boolean","default":false,"title":"Is Blocked Ivc"},"is_blocked_non_ivc":{"type":"boolean","default":false,"title":"Is Blocked Non Ivc"},"ignore_safety_evaluation":{"type":"boolean","default":false,"title":"Ignore Safety Evaluation"}},"title":"SafetyResponseModel"},"SafetyRule":{"type":"string","enum":["sexual_minors","forget_moderation","extremism","scam_fraud","political","self_harm","illegal_distribution_medical","sexual_adults","unknown"],"title":"SafetyRule"},"SampleConfigDBModel":{"type":"object","properties":{"is_sample":{"type":"boolean","default":false,"title":"Is Sample"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"parent_type":{"anyOf":[{"type":"string","enum":["read","collection"]},{"type":"null"}],"title":"Parent Type"},"chapter_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chapter Ids"}},"title":"SampleConfigDBModel"},"SampleResponseModel":{"type":"object","properties":{"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"file_name":{"description":"The name of the sample file.","type":"string","title":"File Name"},"mime_type":{"description":"The MIME type of the sample file.","type":"string","title":"Mime Type"},"size_bytes":{"description":"The size of the sample file in bytes.","type":"integer","title":"Size Bytes"},"hash":{"description":"The hash of the sample file.","type":"string","title":"Hash"},"duration_secs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Secs"},"remove_background_noise":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Remove Background Noise"},"has_isolated_audio":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Isolated Audio"},"has_isolated_audio_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Isolated Audio Preview"},"speaker_separation":{"anyOf":[{"$ref":"#/components/schemas/SpeakerSeparationResponseModel"},{"type":"null"}]},"trim_start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trim Start"},"trim_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trim End"}},"example":{"file_name":"sample.mp3","hash":"1234567890","mime_type":"audio/mpeg","sample_id":"DCwhRBWXzGAHq8TQ4Fs18","size_bytes":1000000},"required":[],"title":"SampleResponseModel","x-fern-type-name":"VoiceSample"},"SayNodeLiteralMessage-Input":{"type":"object","properties":{"type":{"type":"string","default":"literal","const":"literal","title":"Type"},"text":{"description":"Literal text message to be spoken by the agent.","type":"string","minLength":1,"title":"Text"},"text_translations":{"description":"Translations for the text field","type":"object","additionalProperties":{"$ref":"#/components/schemas/TranslatedString"},"title":"Text Translations"}},"required":["text"],"title":"SayNodeLiteralMessage"},"SayNodeLiteralMessage-Output":{"type":"object","properties":{"type":{"type":"string","default":"literal","const":"literal","title":"Type"},"text":{"description":"Literal text message to be spoken by the agent.","type":"string","minLength":1,"title":"Text"},"text_translations":{"description":"Translations for the text field","type":"object","additionalProperties":{"$ref":"#/components/schemas/TranslatedString"},"title":"Text Translations"}},"required":["type","text","text_translations"],"title":"SayNodeLiteralMessage"},"SayNodePromptMessage-Input":{"type":"object","properties":{"type":{"type":"string","default":"prompt","const":"prompt","title":"Type"},"prompt":{"description":"LLM prompt describing what message should be generated.","type":"string","title":"Prompt"}},"required":["prompt"],"title":"SayNodePromptMessage"},"SayNodePromptMessage-Output":{"type":"object","properties":{"type":{"type":"string","default":"prompt","const":"prompt","title":"Type"},"prompt":{"description":"LLM prompt describing what message should be generated.","type":"string","title":"Prompt"}},"required":["type","prompt"],"title":"SayNodePromptMessage"},"ScheduleGroupSessionParams":{"description":"Schedule a single instance of a group service.\n\nThe session's duration is derived from the parent service so the assistant\nonly has to pin start time, the (optional) instructor / room, and the\nlocation. Participants register separately via\n``register_for_group_session``.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"schedule_group_session","const":"schedule_group_session","title":"Smb Tool Type"}},"title":"ScheduleGroupSessionParams"},"ScimGroupResponseModel":{"type":"object","properties":{"scim_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scim External Id"},"display_name":{"type":"string","title":"Display Name"},"created_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"updated_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At Unix"},"seat_type":{"anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}]}},"required":["scim_external_id","display_name"],"title":"ScimGroupResponseModel"},"ScopedAnalysisResult":{"type":"object","properties":{"scope":{"description":"The scope of the analysis. 'conversation' uses the full transcript; 'agent' uses only the portion where the defining agent was active.","$ref":"#/components/schemas/AnalysisScope"},"source_agent_id":{"type":"string","title":"Source Agent Id"},"source_branch_id":{"description":"Branch of the agent for this scoped block; disambiguates repeated agent_id.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Branch Id"},"evaluation_criteria_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"},"title":"Evaluation Criteria Results"},"data_collection_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"},"title":"Data Collection Results"},"successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"success_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Score"}},"required":["scope","source_agent_id","successful"],"title":"ScopedAnalysisResult"},"SearchClientsParams":{"description":"Search for clients by name, phone number, or email.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"search_clients","const":"search_clients","title":"Smb Tool Type"}},"title":"SearchClientsParams"},"SearchHighlightSegment":{"type":"object","properties":{"value":{"type":"string","title":"Value"},"is_hit":{"type":"boolean","title":"Is Hit"}},"required":["value","is_hit"],"title":"SearchHighlightSegment"},"SeatType":{"description":"Seat types for workspace members.","type":"string","enum":["workspace_admin","workspace_member","workspace_lite_member"],"title":"SeatType"},"SecretDependencyResourceType":{"type":"string","enum":["tools","agents","phone_numbers"],"title":"SecretDependencyResourceType"},"SecretDependencyType":{"type":"string","enum":["conversation_initiation_webhook"],"title":"SecretDependencyType"},"SectionSource":{"type":"object","properties":{"song_id":{"description":"The ID of the song to source the section from. You can find the song ID in the response headers when you generate a song.","type":"string","maxLength":100,"minLength":1,"title":"Song Id"},"range":{"description":"The range to extract from the source song.","$ref":"#/components/schemas/TimeRange"},"negative_ranges":{"description":"The ranges to exclude from the 'range'.","type":"array","items":{"$ref":"#/components/schemas/TimeRange"},"maxItems":10,"title":"Negative Ranges"}},"required":["song_id","range"],"title":"SectionSource"},"SegmentCreatePayload":{"type":"object","properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"translations":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Translations"}},"required":["start_time","end_time"],"title":"SegmentCreatePayload"},"SegmentCreateResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"},"new_segment":{"type":"string","title":"New Segment"}},"required":["version","new_segment"],"title":"SegmentCreateResponse"},"SegmentDeleteResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentDeleteResponse"},"SegmentDubResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentDubResponse"},"SegmentMigrationResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentMigrationResponse"},"SegmentSubtitleFrame":{"type":"object","properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"lines":{"type":"array","items":{"type":"string"},"title":"Lines"}},"required":["start_time","end_time","lines"],"title":"SegmentSubtitleFrame"},"SegmentTranscriptionResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentTranscriptionResponse"},"SegmentTranslationResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentTranslationResponse"},"SegmentUpdatePayload":{"type":"object","properties":{"start_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"End Time"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"}},"title":"SegmentUpdatePayload"},"SegmentUpdateResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SegmentUpdateResponse"},"SegmentedJsonExportOptions":{"type":"object","properties":{"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"segmented_json","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"SegmentedJsonExportOptions"},"SentimentAggregate":{"type":"object","properties":{"scored_conversation_count":{"type":"integer","title":"Scored Conversation Count"},"positive_count":{"type":"integer","title":"Positive Count"},"neutral_count":{"type":"integer","title":"Neutral Count"},"negative_count":{"type":"integer","title":"Negative Count"},"average_sentiment_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Sentiment Score"},"average_frustration_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Frustration Score"},"recent_scored_conversation_count":{"type":"integer","title":"Recent Scored Conversation Count"},"recent_positive_count":{"type":"integer","title":"Recent Positive Count"},"recent_neutral_count":{"type":"integer","title":"Recent Neutral Count"},"recent_negative_count":{"type":"integer","title":"Recent Negative Count"},"recent_average_sentiment_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Recent Average Sentiment Score"},"recent_average_frustration_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Recent Average Frustration Score"}},"required":["scored_conversation_count","positive_count","neutral_count","negative_count","average_sentiment_score","average_frustration_score","recent_scored_conversation_count","recent_positive_count","recent_neutral_count","recent_negative_count","recent_average_sentiment_score","recent_average_frustration_score"],"title":"SentimentAggregate"},"SentimentAnalysisSettings":{"type":"object","properties":{},"title":"SentimentAnalysisSettings"},"SetBookingSlugParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"set_booking_slug","const":"set_booking_slug","title":"Smb Tool Type"}},"title":"SetBookingSlugParams"},"SeverityId":{"description":"OCSF Severity levels.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/severity_id","type":"integer","enum":[0,1,2,3,4,5,6,99],"title":"SeverityId"},"SfxSourceContext":{"description":"Context for sound effect clips.","type":"object","properties":{"source_type":{"type":"string","default":"sfx","const":"sfx","title":"Source Type"},"sound_generation_history_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sound Generation History Item Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"generation_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Generation Config"}},"title":"SfxSourceContext"},"ShareOptionResponseModel":{"type":"object","properties":{"name":{"description":"The name of the principal.","type":"string","title":"Name"},"id":{"description":"The ID of the principal.","type":"string","title":"Id"},"type":{"description":"The type of the principal: user, group, or service account (under 'key').","type":"string","enum":["user","group","key"],"title":"Type"}},"required":["name","id","type"],"title":"ShareOptionResponseModel"},"SimilarVoice":{"type":"object","properties":{"voice_id":{"type":"string","title":"Voice Id"},"name":{"type":"string","title":"Name"},"category":{"$ref":"#/components/schemas/VOICE_CATEGORY"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"required":["voice_id","name","category"],"title":"SimilarVoice"},"SimilarVoicesForSpeakerResponse":{"type":"object","properties":{"voices":{"type":"array","items":{"$ref":"#/components/schemas/SimilarVoice"},"title":"Voices"}},"required":["voices"],"title":"SimilarVoicesForSpeakerResponse"},"SimulationLibrarySettings":{"type":"object","properties":{},"title":"SimulationLibrarySettings"},"SimulationTestModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"tool_mock_overrides":{"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).","type":"object","additionalProperties":{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Output"},"type":"array"},"title":"Tool Mock Overrides"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]}},"title":"SimulationTestModel"},"SimulationToolMockBehaviorConfig":{"description":"Simulation/preview-side config: tools are identified by IDs, resolved to names at runtime.","type":"object","properties":{"mocking_strategy":{"description":"Which tools to mock: 'all' mocks every mockable tool, 'selected' mocks only those in mocked_tool_names/mocked_tool_ids, 'none' disables mocking.","default":"none","$ref":"#/components/schemas/MockingStrategy"},"fallback_strategy":{"description":"Behavior when no mock matches a tool call.","default":"raise_error","$ref":"#/components/schemas/MockNoMatchBehavior"},"mocked_tool_ids":{"description":"Tool IDs to mock. Resolved to tool names before being passed to the orchestrator.","type":"array","items":{"type":"string"},"title":"Mocked Tool Ids"}},"title":"SimulationToolMockBehaviorConfig"},"SingleLanguagesResponse":{"type":"object","properties":{"kind":{"description":"Indicates this response contains single languages (not source-to-destination pairs).","type":"string","default":"single","const":"single","title":"Kind"},"languages":{"description":"The list of available languages.","type":"array","items":{"$ref":"#/components/schemas/LanguageInfo"},"title":"Languages"}},"example":{"kind":"single","languages":[{"code":"en","label":"English"},{"code":"es-ES","label":"Spanish (Spain)"},{"code":"fr","label":"French"}]},"required":["languages"],"title":"SingleLanguagesResponse"},"SingleTestRunRequestModel":{"type":"object","properties":{"test_id":{"description":"ID of the test to run","type":"string","title":"Test Id"},"workflow_node_id":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"root_folder_id":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"},"root_folder_name":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Name"}},"required":["test_id"],"title":"SingleTestRunRequestModel"},"SingleUseTokenResponseModel":{"type":"object","properties":{"token":{"description":"A time bound single use token that expires after 15 minutes. Will be consumed on use.","type":"string","title":"Token"}},"example":{"token":"sutkn_1234567890"},"required":["token"],"title":"SingleUseTokenResponseModel"},"SingleUseTokenType":{"type":"string","enum":["realtime_scribe","batch_scribe","tts_websocket"],"title":"SingleUseTokenType"},"SkipTurnToolConfig":{"description":"Allows the agent to explicitly skip its turn.\n\nThis tool should be invoked by the LLM when the user indicates they would like\nto think or take a short pause before continuing the conversation—e.g. when\nthey say: \"Give me a second\", \"Let me think\", or \"One moment please\". After\ncalling this tool, the assistant should not speak until the user speaks\nagain, or another normal turn-taking condition is met. The tool itself has\nno parameters and performs no side-effects other than informing the backend\nthat the current turn generation is complete.","type":"object","properties":{"system_tool_type":{"type":"string","default":"skip_turn","const":"skip_turn","title":"System Tool Type"}},"title":"SkipTurnToolConfig"},"SkipTurnToolResponseModel":{"type":"object","properties":{"result_type":{"type":"string","default":"skip_turn_success","const":"skip_turn_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"title":"SkipTurnToolResponseModel"},"SlackBotAuthResponse":{"description":"Response model for the internal Slack BYO bot auth connection.","type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"slack_bot_auth","const":"slack_bot_auth","title":"Auth Type"},"provider":{"type":"string","default":"Slack","const":"Slack","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","id"],"title":"SlackBotAuthResponse"},"SoftTimeoutConfig":{"description":"Configuration for soft timeout functionality during LLM response generation.","type":"object","properties":{"timeout_seconds":{"description":"Time in seconds before showing the predefined message while waiting for LLM response. Set to -1 to disable.","type":"number","default":-1,"title":"Timeout Seconds"},"message":{"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}}).","type":"string","default":"Hhmmmm...yeah.","maxLength":200,"minLength":1,"title":"Message","x-convai-client-override":true,"x-convai-language-override":true},"additional_soft_timeout_messages":{"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.","type":"array","items":{"type":"string"},"maxItems":7,"title":"Additional Soft Timeout Messages"},"use_llm_generated_message":{"description":"If enabled, the soft timeout message will be generated dynamically instead of using the static message.","type":"boolean","default":false,"title":"Use Llm Generated Message"},"randomize_fillers":{"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.","type":"boolean","default":false,"title":"Randomize Fillers"},"max_soft_timeouts_per_generation":{"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.","type":"integer","default":1,"maximum":8,"minimum":1,"title":"Max Soft Timeouts Per Generation"},"llm_generated_message_prompt_override":{"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}}).","anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"null"}],"examples":["Output a SHORT neutral filler phrase (1-4 words MAX) acknowledging you heard the user."],"title":"Llm Generated Message Prompt Override"}},"example":{"message":"Hhmmmm...yeah.","timeout_seconds":2,"use_llm_generated_message":false},"title":"SoftTimeoutConfig"},"SoftTimeoutConfigOverride":{"type":"object","properties":{"message":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","x-convai-client-override":true,"x-convai-language-override":true}},"example":{"message":"Hhmmmm...yeah."},"title":"SoftTimeoutConfigOverride"},"SoftTimeoutConfigOverrideConfig":{"type":"object","properties":{"message":{"description":"Whether to allow overriding the message field.","type":"boolean","default":false,"title":"Message"}},"title":"SoftTimeoutConfigOverrideConfig"},"SoftTimeoutConfigWorkflowOverride":{"type":"object","properties":{"timeout_seconds":{"description":"Time in seconds before showing the predefined message while waiting for LLM response. Set to -1 to disable.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Timeout Seconds"},"message":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","x-convai-client-override":true,"x-convai-language-override":true},"additional_soft_timeout_messages":{"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.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Additional Soft Timeout Messages"},"use_llm_generated_message":{"description":"If enabled, the soft timeout message will be generated dynamically instead of using the static message.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Llm Generated Message"},"randomize_fillers":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Randomize Fillers"},"max_soft_timeouts_per_generation":{"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.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Soft Timeouts Per Generation"},"llm_generated_message_prompt_override":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"examples":["Output a SHORT neutral filler phrase (1-4 words MAX) acknowledging you heard the user."],"title":"Llm Generated Message Prompt Override"}},"example":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"title":"SoftTimeoutConfigWorkflowOverride"},"SongMetadata":{"type":"object","properties":{"title":{"description":"The title of the song","anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"description":"The description of the song","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"description":"The genres of the song","type":"array","items":{"type":"string"},"title":"Genres"},"languages":{"description":"The languages of the song","type":"array","items":{"type":"string"},"title":"Languages"},"is_explicit":{"description":"Whether the song is explicit","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Explicit"}},"example":{"description":"My Song Description","genres":["pop","rock","jazz"],"is_explicit":false,"languages":["en","fr"],"title":"My Song"},"required":["title","description","genres","languages","is_explicit"],"title":"SongMetadata"},"SongSection":{"type":"object","properties":{"section_name":{"description":"The name of the section. Must be between 1 and 100 characters.","type":"string","maxLength":100,"minLength":1,"title":"Section Name"},"positive_local_styles":{"description":"The styles and musical directions that should be present in this section. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Positive Local Styles"},"negative_local_styles":{"description":"The styles and musical directions that should not be present in this section. Use English language for best result.","type":"array","items":{"type":"string"},"maxItems":50,"title":"Negative Local Styles"},"duration_ms":{"description":"The duration of the section in milliseconds. Must be between 3000ms and 120000ms.","type":"integer","maximum":120000,"minimum":3000,"title":"Duration Ms"},"lines":{"description":"The lyrics of the section. Max 30 lines per section and max 200 characters per line.","type":"array","items":{"type":"string","maxLength":200},"maxItems":30,"title":"Lines"},"source_from":{"description":"Optional source to extract the section from. Used for inpainting.","anyOf":[{"$ref":"#/components/schemas/SectionSource"},{"type":"null"}]}},"required":["section_name","positive_local_styles","negative_local_styles","duration_ms","lines"],"title":"SongSection"},"SongSourceContext":{"type":"object","properties":{"source_type":{"type":"string","default":"song","const":"song","title":"Source Type"},"song_id":{"type":"string","title":"Song Id"},"chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"genres":{"type":"array","items":{"type":"string"},"title":"Genres"},"languages":{"type":"array","items":{"type":"string"},"title":"Languages"},"is_explicit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Explicit"},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"generation_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Generation Settings"}},"required":["song_id"],"title":"SongSourceContext"},"SortDirection":{"type":"string","enum":["asc","desc"],"title":"SortDirection"},"SpeakerAudioResponseModel":{"type":"object","properties":{"audio_base_64":{"description":"The base64 encoded audio.","type":"string","title":"Audio Base 64"},"media_type":{"description":"The media type of the audio.","type":"string","title":"Media Type"},"duration_secs":{"description":"The duration of the audio in seconds.","type":"number","title":"Duration Secs"}},"example":{"audio_base_64":"audio_base_64","duration_secs":5,"media_type":"audio/mpeg"},"required":["audio_base_64","media_type","duration_secs"],"title":"SpeakerAudioResponseModel"},"SpeakerCreatedResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"},"speaker_id":{"type":"string","title":"Speaker Id"}},"required":["version","speaker_id"],"title":"SpeakerCreatedResponse"},"SpeakerResponseModel":{"type":"object","properties":{"speaker_id":{"description":"The ID of the speaker.","type":"string","title":"Speaker Id"},"duration_secs":{"description":"The duration of the speaker segment in seconds.","type":"number","title":"Duration Secs"},"utterances":{"description":"The utterances of the speaker.","anyOf":[{"items":{"$ref":"#/components/schemas/UtteranceResponseModel"},"type":"array"},{"type":"null"}],"title":"Utterances"}},"example":{"duration_secs":5,"speaker_id":"DCwhRBWXzGAHq8TQ4Fs18"},"required":["speaker_id","duration_secs"],"title":"SpeakerResponseModel"},"SpeakerSegment":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"text":{"type":"string","title":"Text"},"subtitles":{"type":"array","items":{"$ref":"#/components/schemas/SegmentSubtitleFrame"},"title":"Subtitles"},"dubs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DubbedSegment"},"title":"Dubs"}},"required":["id","start_time","end_time","text","subtitles","dubs"],"title":"SpeakerSegment"},"SpeakerSeparationResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"},"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"status":{"description":"The status of the speaker separation.","type":"string","enum":["not_started","pending","completed","failed"],"title":"Status"},"speakers":{"description":"The speakers of the sample.","anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/SpeakerResponseModel"},"type":"object"},{"type":"null"}],"title":"Speakers"},"selected_speaker_ids":{"description":"The IDs of the selected speakers.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Selected Speaker Ids"}},"example":{"sample_id":"DCwhRBWXzGAHq8TQ4Fs18","status":"not_started","voice_id":"DCwhRBWXzGAHq8TQ4Fs18"},"required":["voice_id","sample_id","status"],"title":"SpeakerSeparationResponseModel"},"SpeakerTrack":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"media_ref":{"$ref":"#/components/schemas/DubbingMediaReference"},"speaker_name":{"type":"string","title":"Speaker Name"},"voices":{"type":"object","additionalProperties":{"type":"string"},"title":"Voices"},"segments":{"type":"array","items":{"type":"string"},"title":"Segments"}},"required":["id","media_ref","speaker_name","voices","segments"],"title":"SpeakerTrack"},"SpeakerUpdatedResponse":{"type":"object","properties":{"version":{"type":"integer","title":"Version"}},"required":["version"],"title":"SpeakerUpdatedResponse"},"SpeechEngineConfig":{"type":"object","properties":{"ws_url":{"description":"The WebSocket URL for the transcript server","type":"string","title":"Ws Url"},"request_headers":{"description":"Headers to include in the WebSocket connection request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"}]},"title":"Request Headers"}},"required":["ws_url"],"title":"SpeechEngineConfig"},"SpeechEngineConversationInitiationClientDataConfig":{"type":"object","properties":{"first_message":{"description":"Whether the first message can be overridden by the client","type":"boolean","default":false,"title":"First Message"}},"title":"SpeechEngineConversationInitiationClientDataConfig"},"SpeechEngineResponse":{"type":"object","properties":{"speech_engine_id":{"description":"The speech engine resource ID","type":"string","title":"Speech Engine Id"},"name":{"description":"Human-readable name for the speech engine","type":"string","title":"Name"},"speech_engine":{"description":"WebSocket connection settings for the upstream transcript server","$ref":"#/components/schemas/SpeechEngineConfig"},"asr":{"description":"Automatic speech recognition configuration","$ref":"#/components/schemas/ASRConversationalConfig"},"tts":{"description":"Text-to-speech output configuration","$ref":"#/components/schemas/TTSConversationalConfig-Output"},"turn":{"description":"Turn detection configuration","$ref":"#/components/schemas/BaseTurnConfig"},"conversation":{"description":"Conversation-level settings including client events and duration limits","$ref":"#/components/schemas/ConversationConfig-Output"},"privacy":{"description":"Privacy settings controlling recording, retention, and PII handling","$ref":"#/components/schemas/PrivacyConfig-Output"},"call_limits":{"description":"Concurrency and daily conversation limits for this speech engine","$ref":"#/components/schemas/AgentCallLimits"},"language":{"description":"ISO language code used by the speech engine (e.g. 'en')","type":"string","title":"Language"},"tags":{"description":"Arbitrary tags for categorization and filtering","type":"array","items":{"type":"string"},"title":"Tags"},"overrides":{"description":"Override settings the client may set during conversation initiation","$ref":"#/components/schemas/SpeechEngineConversationInitiationClientDataConfig"},"metadata":{"description":"Creation and update timestamps with source information","$ref":"#/components/schemas/AgentMetadataDBModel"},"access_info":{"description":"The access information of the speech engine for the user","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]}},"example":{"asr":{"keywords":[],"provider":"elevenlabs","quality":"high","user_input_audio_format":"pcm_16000"},"call_limits":{"agent_concurrency_limit":-1,"bursting_enabled":true,"daily_limit":100000},"conversation":{"client_events":["audio","interruption","agent_response","user_transcript"],"max_duration_seconds":600},"language":"en","metadata":{"created_at_unix_secs":1714000000,"created_from":"api","last_updated_from":"api","updated_at_unix_secs":1714000000},"name":"My Speech Engine","overrides":{"first_message":false},"privacy":{"apply_to_existing_conversations":false,"delete_audio":false,"delete_transcript_and_pii":false,"record_voice":true,"retention_days":-1,"zero_retention_mode":false},"speech_engine":{"request_headers":{},"ws_url":"wss://example.com/transcript"},"speech_engine_id":"seng_3701k3ttaq12ewp8b7qv5rfyszkz","tags":["production","v1"],"tts":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_flash_v2","optimize_streaming_latency":3,"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"turn":{"mode":"turn","silence_end_call_timeout":-1,"turn_eagerness":"normal","turn_timeout":7}},"required":["speech_engine_id","name","speech_engine","asr","tts","turn","conversation","privacy","call_limits","language","tags","overrides","metadata"],"title":"SpeechEngineResponse"},"SpeechEngineSummaryResponse":{"type":"object","properties":{"speech_engine_id":{"description":"The speech engine resource ID","type":"string","title":"Speech Engine Id"},"name":{"description":"Human-readable name for the speech engine","type":"string","title":"Name"},"created_at_unix_secs":{"description":"Creation time in Unix seconds","type":"integer","title":"Created At Unix Secs"},"tags":{"description":"Arbitrary tags for categorization and filtering","type":"array","items":{"type":"string"},"title":"Tags"},"access_info":{"description":"The access information of the speech engine for the user","$ref":"#/components/schemas/ResourceAccessInfo"}},"example":{"access_info":{"creator_email":"john@example.com","creator_name":"John Doe","is_creator":true,"role":"admin"},"created_at_unix_secs":1714000000,"name":"My Speech Engine","speech_engine_id":"seng_3701k3ttaq12ewp8b7qv5rfyszkz","tags":["production","v1"]},"required":["speech_engine_id","name","created_at_unix_secs","tags","access_info"],"title":"SpeechEngineSummaryResponse"},"SpeechHistoryItemResponseModel":{"type":"object","properties":{"history_item_id":{"description":"The ID of the history item.","type":"string","title":"History Item Id"},"request_id":{"description":"The ID of the request.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"voice_id":{"description":"The ID of the voice used.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"model_id":{"description":"The ID of the model.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"voice_name":{"description":"The name of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Name"},"voice_category":{"description":"The category of the voice. Either 'premade', 'cloned', 'generated' or 'professional'.","anyOf":[{"type":"string","enum":["premade","cloned","generated","professional"]},{"type":"null"}],"title":"Voice Category"},"text":{"description":"The text used to generate the audio item.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"date_unix":{"description":"Unix timestamp of when the item was created.","type":"integer","title":"Date Unix"},"character_count_change_from":{"description":"The character count change from.","type":"integer","title":"Character Count Change From"},"character_count_change_to":{"description":"The character count change to.","type":"integer","title":"Character Count Change To"},"content_type":{"description":"The content type of the generated item.","type":"string","title":"Content Type"},"state":[{"x-fern-type-name":"SpeechHistoryState"}],"settings":{"description":"The settings of the history item.","anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"},"share_link_id":{"description":"The ID of the share link.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Link Id"},"source":{"description":"The source of the history item. Either TTS (text to speech), STS (speech to text), AN (audio native), Projects, Dubbing, PlayAPI, PD (pronunciation dictionary) or ConvAI (Agents Platform).","anyOf":[{"type":"string","enum":["TTS","STS","Projects","PD","AN","Dubbing","PlayAPI","ConvAI","VoiceGeneration","InVPC","Flows"]},{"type":"null"}],"title":"Source"},"alignments":{"description":"The alignments of the history item.","anyOf":[{"$ref":"#/components/schemas/HistoryAlignmentsResponseModel"},{"type":"null"}]},"dialogue":{"description":"The dialogue (voice and text pairs) used to generate the audio item. If this is set then the top level `text` and `voice_id` fields will be empty.","anyOf":[{"items":{"$ref":"#/components/schemas/DialogueInputResponseModel"},"type":"array"},{"type":"null"}],"title":"Dialogue"},"output_format":{"description":"The output format the audio was originally generated in.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Format"}},"example":{"character_count_change_from":17189,"character_count_change_to":17231,"content_type":"audio/mpeg","date_unix":1714650306,"history_item_id":"ja9xsmfGhxYcymxGcOGB","model_id":"eleven_multilingual_v2","request_id":"BF0BZg4IwLGBlaVjv9Im","settings":{"similarity_boost":0.5,"stability":0.71,"style":0,"use_speaker_boost":true},"source":"TTS","state":"created","text":"Hello, world!","voice_category":"premade","voice_id":"21m00Tcm4TlvDq8ikWAM","voice_name":"Rachel"},"required":["history_item_id","date_unix","character_count_change_from","character_count_change_to","content_type","state"],"title":"SpeechHistoryItemResponseModel","x-fern-type-name":"SpeechHistoryItemResponse"},"SpeechToTextCharacterResponseModel":{"type":"object","properties":{"text":{"description":"The character that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the character in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start"},"end":{"description":"The end time of the character in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"End"}},"example":{"end":0.1,"start":0,"text":"H"},"required":["text"],"title":"SpeechToTextCharacterResponseModel"},"SpeechToTextChunkResponseModel":{"description":"Chunk-level detail of the transcription with timing information.","type":"object","properties":{"language_code":{"description":"The detected language code (e.g. 'eng' for English).","type":"string","title":"Language Code"},"language_probability":{"description":"The confidence score of the language detection (0 to 1).","type":"number","title":"Language Probability"},"text":{"description":"The raw text of the transcription.","type":"string","title":"Text"},"words":{"description":"List of words with their timing information.","type":"array","items":{"$ref":"#/components/schemas/SpeechToTextWordResponseModel"},"title":"Words"},"channel_index":{"description":"The channel index this transcript belongs to (for multichannel audio).","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Channel Index"},"additional_formats":{"description":"Requested additional formats of the transcript.","anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AdditionalFormatResponseModel"},{"type":"null"}]},"type":"array"},{"type":"null"}],"title":"Additional Formats"},"transcription_id":{"description":"The transcription ID of the response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcription Id"},"entities":{"description":"List of detected entities with their text, type, and character positions in the transcript.","anyOf":[{"items":{"$ref":"#/components/schemas/DetectedEntity"},"type":"array"},{"type":"null"}],"title":"Entities"},"audio_duration_secs":{"description":"The duration of the audio that was transcribed in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Audio Duration Secs"}},"example":{"language_code":"en","language_probability":0.98,"text":"Hello world!","words":[{"end":0.5,"logprob":-0.124,"speaker_id":"speaker_1","start":0,"text":"Hello","type":"word"},{"end":0.5,"logprob":0,"speaker_id":"speaker_1","start":0.5,"text":" ","type":"spacing"},{"end":1.2,"logprob":-0.089,"speaker_id":"speaker_1","start":0.5,"text":"world!","type":"word"}]},"required":["language_code","language_probability","text","words"],"title":"SpeechToTextChunkResponseModel"},"SpeechToTextWebhookResponseModel":{"type":"object","properties":{"message":{"description":"The message of the webhook response.","type":"string","title":"Message"},"request_id":{"description":"The request ID of the webhook response.","type":"string","title":"Request Id"},"transcription_id":{"description":"The transcription ID of the webhook response.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcription Id"}},"example":{"message":"Request accepted. Transcription result will be sent to the webhook endpoint.","request_id":"1234567890"},"required":["message","request_id"],"title":"SpeechToTextWebhookResponseModel"},"SpeechToTextWordResponseModel":{"description":"Word-level detail of the transcription with timing information.","type":"object","properties":{"text":{"description":"The word or sound that was transcribed.","type":"string","title":"Text"},"start":{"description":"The start time of the word or sound in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Start"},"end":{"description":"The end time of the word or sound in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"End"},"type":{"description":"The type of the word or sound. 'audio_event' is used for non-word sounds like laughter or footsteps.","type":"string","enum":["word","spacing","audio_event"],"title":"Type"},"speaker_id":{"description":"Unique identifier for the speaker of this word.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Id"},"logprob":{"description":"The log of the probability with which this word was predicted. Logprobs are in range [-infinity, 0], higher logprobs indicate a higher confidence the model has in its predictions.","type":"number","title":"Logprob"},"characters":{"description":"The characters that make up the word and their timing information.","anyOf":[{"items":{"$ref":"#/components/schemas/SpeechToTextCharacterResponseModel"},"type":"array"},{"type":"null"}],"title":"Characters"},"channel_index":{"description":"The channel this word was spoken on (for multichannel audio). Null for single-channel transcriptions.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Channel Index"}},"example":{"characters":[{"end":0.1,"start":0,"text":"H"},{"end":0.2,"start":0.1,"text":"e"},{"end":0.3,"start":0.2,"text":"l"},{"end":0.4,"start":0.3,"text":"l"},{"end":0.5,"start":0.4,"text":"o"}],"end":0.5,"logprob":-0.124,"speaker_id":"speaker_1","start":0,"text":"Hello","type":"word"},"required":["text","type","logprob"],"title":"SpeechToTextWordResponseModel"},"SpellingPatience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities.","type":"string","default":"auto","enum":["auto","off"],"title":"SpellingPatience"},"SrtExportOptions":{"type":"object","properties":{"max_characters_per_line":{"default":42,"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Characters Per Line"},"include_speakers":{"type":"boolean","default":false,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"srt","title":"Format"},"segment_on_silence_longer_than_s":{"default":0.8,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"default":4,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"default":84,"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"SrtExportOptions"},"StartPVCVoiceTrainingResponseModel":{"type":"object","properties":{"status":{"description":"The status of the start PVC voice training request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"StartPVCVoiceTrainingResponseModel"},"StartProcedureToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"start_procedure","const":"start_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Input"},"title":"Procedures"}},"title":"StartProcedureToolConfig"},"StartProcedureToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"start_procedure","const":"start_procedure","title":"System Tool Type"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureAtVersion-Output"},"title":"Procedures"}},"title":"StartProcedureToolConfig"},"StartProcedureToolErrorStatus":{"type":"string","enum":["not_found","invalid_name","already_active"]},"StartSpeakerSeparationResponseModel":{"type":"object","properties":{"status":{"description":"The status of the start speaker seperation request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"StartSpeakerSeparationResponseModel"},"StatusId":{"description":"OCSF Status levels.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/status_id","type":"integer","enum":[0,1,2,99],"title":"StatusId"},"StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"voice_segments":{"description":"Voice segments for the audio","type":"array","items":{"$ref":"#/components/schemas/VoiceSegment"},"title":"Voice Segments"}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]},"audio_base64":"base64_encoded_audio_chunk","normalized_alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]},"voice_segments":[{"character_end_index":2,"character_start_index":0,"dialogue_input_index":0,"end_time_seconds":0.2,"start_time_seconds":0,"voice_id":"VEDscrYI8uIMttlO2Ztu"}]},"required":["audio_base64","voice_segments"],"title":"StreamingAudioChunkWithTimestampsAndVoiceSegmentsResponseModel"},"StreamingAudioChunkWithTimestampsResponseModel":{"type":"object","properties":{"audio_base64":{"description":"Base64 encoded audio data","type":"string","title":"Audio Base64"},"alignment":{"description":"Timestamp information for each character in the original text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]},"normalized_alignment":{"description":"Timestamp information for each character in the normalized text","anyOf":[{"$ref":"#/components/schemas/CharacterAlignmentResponseModel"},{"type":"null"}]}},"example":{"alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]},"audio_base64":"base64_encoded_audio_chunk","normalized_alignment":{"character_end_times_seconds":[0.1,0.2],"character_start_times_seconds":[0,0.1],"characters":["H","e"]}},"required":["audio_base64"],"title":"StreamingAudioChunkWithTimestampsResponseModel","x-fern-type-name":"StreamingAudioChunkWithTimestampsResponse"},"StudioAgentSettingsModel":{"type":"object","properties":{"tool_settings":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StudioAgentToolSettingsModel"},"title":"Tool Settings"}},"title":"StudioAgentSettingsModel"},"StudioAgentToolSettingsModel":{"type":"object","properties":{"skip_confirmation":{"type":"boolean","default":false,"title":"Skip Confirmation"}},"title":"StudioAgentToolSettingsModel"},"StudioClipReference":{"type":"object","properties":{"project_id":{"type":"string","title":"Project Id"},"chapter_id":{"type":"string","title":"Chapter Id"},"clip_type":{"type":"string","enum":["video","image","external_audio","tts_node"],"title":"Clip Type"},"clip_id":{"type":"string","title":"Clip Id"},"block_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Block Id"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"required":["project_id","chapter_id","clip_type","clip_id"],"title":"StudioClipReference"},"StudioTextStyleOutlineModel":{"type":"object","properties":{"enabled":{"type":"boolean","title":"Enabled"},"color":{"type":"string","title":"Color"},"opacity":{"type":"number","title":"Opacity"},"width":{"type":"number","title":"Width"}},"required":["enabled","color","opacity","width"],"title":"StudioTextStyleOutlineModel"},"StudioTextStyleShadowModel":{"type":"object","properties":{"enabled":{"type":"boolean","title":"Enabled"},"color":{"type":"string","title":"Color"},"opacity":{"type":"number","title":"Opacity"},"blur":{"type":"number","title":"Blur"},"offset_x":{"type":"number","title":"Offset X"},"offset_y":{"type":"number","title":"Offset Y"}},"required":["enabled","color","opacity","blur","offset_x","offset_y"],"title":"StudioTextStyleShadowModel"},"SubAgent-Input":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]}},"required":["agent_id","description"],"title":"SubAgent"},"SubAgent-Output":{"type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]}},"required":["agent_id","description"],"title":"SubAgent"},"SubmitBusinessInfoParams":{"description":"Finalize the onboarding interview: create a text knowledge source and mark done.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"submit_business_info","const":"submit_business_info","title":"Smb Tool Type"}},"title":"SubmitBusinessInfoParams"},"SubmitOrderResponse":{"type":"object","properties":{"order_id":{"description":"The ID of the submitted order.","$ref":"#/components/schemas/OrderId"},"state":{"description":"The current state of the order after submission.","$ref":"#/components/schemas/OrderState"},"submitted_at":{"description":"The timestamp when the order was submitted.","type":"string","format":"date-time","title":"Submitted At"}},"example":{"order_id":"prodorder_01jgatk6h0fwxrtbjade61yqhx","state":"submitted","submitted_at":"2025-03-15T10:30:00Z"},"required":["order_id","state","submitted_at"],"title":"SubmitOrderResponse"},"SubscriptionResponseModel":{"type":"object","properties":{"tier":{"description":"The tier of the user's subscription.","type":"string","title":"Tier"},"character_count":{"description":"The number of characters used by the user.","type":"integer","title":"Character Count"},"character_limit":{"description":"The maximum number of characters allowed in the current billing period.","type":"integer","title":"Character Limit"},"max_character_limit_extension":{"description":"Deprecated: use `max_credit_limit_extension`. Maximum number of characters that the character limit can be exceeded by. Managed by the workspace admin.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Character Limit Extension"},"max_credit_limit_extension":{"description":"Maximum number of credits that the credit limit can be exceeded by. Managed by the workspace admin. `\"unlimited\"` means no cap, `0` means usage-based billing is disabled.","anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"}],"title":"Max Credit Limit Extension"},"can_extend_character_limit":{"description":"Whether the workspace is entitled to enter overages (usage-based billing).","type":"boolean","title":"Can Extend Character Limit"},"allowed_to_extend_character_limit":{"description":"Deprecated: use `max_credit_limit_extension != 0`. Whether the user is allowed to extend their character limit.","type":"boolean","title":"Allowed To Extend Character Limit"},"next_character_count_reset_unix":{"description":"The Unix timestamp of the next character count reset.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Character Count Reset Unix"},"voice_slots_used":{"description":"The number of voice slots used by the user.","type":"integer","title":"Voice Slots Used"},"professional_voice_slots_used":{"description":"The number of professional voice slots used. For consolidated billing this is the group-wide count across all workspaces in the group; see professional_voice_slots_used_in_workspace for the current workspace only.","type":"integer","title":"Professional Voice Slots Used"},"professional_voice_slots_used_in_workspace":{"description":"The number of professional voice slots used in the current workspace. For consolidated billing, professional_voice_slots_used counts across all workspaces in the group, while this counts only the current workspace.","type":"integer","title":"Professional Voice Slots Used In Workspace"},"voice_limit":{"description":"The maximum number of voice slots allowed for the user.","type":"integer","title":"Voice Limit"},"max_voice_add_edits":{"description":"The maximum number of voice add/edits allowed for the user.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Voice Add Edits"},"voice_add_edit_counter":{"description":"The number of voice add/edits used by the user.","type":"integer","title":"Voice Add Edit Counter"},"professional_voice_limit":{"description":"The maximum number of professional voices allowed for the user.","type":"integer","title":"Professional Voice Limit"},"can_extend_voice_limit":{"description":"Whether the user can extend their voice limit.","type":"boolean","title":"Can Extend Voice Limit"},"can_use_instant_voice_cloning":{"description":"Whether the user can use instant voice cloning.","type":"boolean","title":"Can Use Instant Voice Cloning"},"can_use_professional_voice_cloning":{"description":"Whether the user can use professional voice cloning.","type":"boolean","title":"Can Use Professional Voice Cloning"},"currency":{"description":"The currency of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}]},"current_overage":{"description":"The current usage-based overage cost.","$ref":"#/components/schemas/Price"},"status":{"description":"The status of the user's subscription.","$ref":"#/components/schemas/SubscriptionStatusType","x-fern-type-name":"SubscriptionStatus"},"billing_period":{"description":"The billing period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/BillingPeriod"},{"type":"null"}]},"character_refresh_period":{"description":"The character refresh period of the user's subscription.","anyOf":[{"$ref":"#/components/schemas/CharacterRefreshPeriod"},{"type":"null"}]}},"example":{"allowed_to_extend_character_limit":false,"billing_period":"monthly_period","can_extend_character_limit":false,"can_extend_voice_limit":false,"can_use_instant_voice_cloning":true,"can_use_professional_voice_cloning":true,"character_count":17231,"character_limit":100000,"character_refresh_period":"monthly_period","currency":"usd","current_overage":{"amount":"0","currency":"usd"},"max_character_limit_extension":10000,"max_credit_limit_extension":10000,"max_voice_add_edits":230,"next_character_count_reset_unix":1738356858,"professional_voice_limit":1,"professional_voice_slots_used":0,"professional_voice_slots_used_in_workspace":0,"status":"free","tier":"trial","voice_add_edit_counter":212,"voice_limit":120,"voice_slots_used":1},"required":["tier","character_count","character_limit","max_character_limit_extension","max_credit_limit_extension","can_extend_character_limit","allowed_to_extend_character_limit","voice_slots_used","professional_voice_slots_used","professional_voice_slots_used_in_workspace","voice_limit","voice_add_edit_counter","professional_voice_limit","can_extend_voice_limit","can_use_instant_voice_cloning","can_use_professional_voice_cloning","current_overage","status"],"title":"SubscriptionResponseModel","x-fern-type-name":"SubscriptionResponse"},"SubscriptionStatusType":{"type":"string","enum":["trialing","active","incomplete","past_due","free","free_disabled"],"title":"SubscriptionStatusType"},"SubtitleOrderItemRequest":{"type":"object","properties":{"kind":{"description":"The type of order item.","type":"string","default":"subtitles","const":"subtitles","title":"Kind"},"media_ids":{"description":"The IDs of the uploaded media files to generate subtitles for.","type":"array","items":{"$ref":"#/components/schemas/MediaId"},"title":"Media Ids"},"source_language":{"description":"The language code of the source media (e.g. 'en', 'es').","type":"string","title":"Source Language"},"destination_languages":{"description":"List of target language codes. Subtitles will be generated for each media file in each destination language.","type":"array","items":{"type":"string"},"title":"Destination Languages"},"cue_options":{"description":"Formatting options for subtitle cues such as duration, line count, and character limits.","$ref":"#/components/schemas/CueOptionsRequest"},"sdh":{"description":"Whether subtitles should use SDH format, which includes descriptions for deaf and hard-of-hearing viewers.","type":"boolean","default":false,"title":"Sdh"},"instructions":{"description":"Optional free-text instructions for the subtitling team.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"}},"example":{"cue_options":{"max_chars_per_line":42,"max_duration_ms":7000,"max_lines_per_cue":2,"min_duration_ms":1000},"destination_languages":["hi","fr-FR","de"],"instructions":"Keep reading speed moderate; preserve humor in idioms.","kind":"subtitles","media_ids":["prodmedia_01jgatk6h0fwxrtbjade61yqhx","prodmedia_01jgb2zd68f8f9tfvbb968wb8z"],"sdh":false,"source_language":"en"},"required":["media_ids","source_language","destination_languages"],"title":"SubtitleOrderItemRequest"},"SuggestedAudioTag":{"type":"object","properties":{"tag":{"description":"Audio tag to use (for best performance, 1-2 words, e.g., 'happy', 'excited')","type":"string","maxLength":30,"minLength":1,"title":"Tag"},"description":{"description":"Optional description of when to use this tag","anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Description"}},"required":["tag"],"title":"SuggestedAudioTag"},"SupportedVoice":{"type":"object","properties":{"label":{"type":"string","minLength":1,"title":"Label"},"voice_id":{"type":"string","minLength":1,"title":"Voice Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"model_family":{"anyOf":[{"$ref":"#/components/schemas/TTSModelFamily"},{"type":"null"}]},"optimize_streaming_latency":{"anyOf":[{"$ref":"#/components/schemas/TTSOptimizeStreamingLatency"},{"type":"null"}]},"stability":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"},"speed":{"anyOf":[{"type":"number","maximum":1.2,"minimum":0.7},{"type":"null"}],"title":"Speed"},"similarity_boost":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Similarity Boost"}},"required":["label","voice_id"],"title":"SupportedVoice"},"SystemEvaluationCriteria":{"type":"object","properties":{"user_sentiment_score":{"type":"number","maximum":1,"minimum":-1,"title":"User Sentiment Score"},"user_frustration_score":{"type":"number","maximum":1,"minimum":0,"title":"User Frustration Score"}},"required":["user_sentiment_score","user_frustration_score"],"title":"SystemEvaluationCriteria"},"SystemToolConfig-Input":{"description":"A system tool is a tool that is used to call a system method in the server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"system","const":"system","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"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.","type":"string","default":"","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete.","type":"integer","default":20,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"params":{"discriminator":{"propertyName":"system_tool_type","mapping":{"end_call":"#/components/schemas/EndCallToolConfig","end_procedure":"#/components/schemas/EndProcedureToolConfig-Input","knowledge_base_rag":"#/components/schemas/KnowledgeBaseRagToolConfig","language_detection":"#/components/schemas/LanguageDetectionToolConfig","play_keypad_touch_tone":"#/components/schemas/PlayDTMFToolConfig","run_subagent":"#/components/schemas/RunSubagentToolConfig-Input","skip_turn":"#/components/schemas/SkipTurnToolConfig","start_procedure":"#/components/schemas/StartProcedureToolConfig-Input","transfer_to_agent":"#/components/schemas/TransferToAgentToolConfig-Input","transfer_to_number":"#/components/schemas/TransferToNumberToolConfig-Input","voicemail_detection":"#/components/schemas/VoicemailDetectionToolConfig"}},"oneOf":[{"$ref":"#/components/schemas/EndCallToolConfig"},{"$ref":"#/components/schemas/LanguageDetectionToolConfig"},{"$ref":"#/components/schemas/TransferToAgentToolConfig-Input"},{"$ref":"#/components/schemas/TransferToNumberToolConfig-Input"},{"$ref":"#/components/schemas/SkipTurnToolConfig"},{"$ref":"#/components/schemas/PlayDTMFToolConfig"},{"$ref":"#/components/schemas/VoicemailDetectionToolConfig"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolConfig"},{"$ref":"#/components/schemas/StartProcedureToolConfig-Input"},{"$ref":"#/components/schemas/EndProcedureToolConfig-Input"},{"$ref":"#/components/schemas/RunSubagentToolConfig-Input"}],"title":"Params"}},"examples":[{"description":"","name":"end_call","params":{"system_tool_type":"end_call"},"type":"system"},{"description":"Custom description for specific use case","name":"transfer_to_agent","params":{"system_tool_type":"transfer_to_agent","transfers":[]},"type":"system"}],"required":["name","params"],"title":"SystemToolConfig"},"SystemToolConfig-Output":{"description":"A system tool is a tool that is used to call a system method in the server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"system","const":"system","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"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.","type":"string","default":"","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete.","type":"integer","default":20,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"params":{"discriminator":{"propertyName":"system_tool_type","mapping":{"end_call":"#/components/schemas/EndCallToolConfig","end_procedure":"#/components/schemas/EndProcedureToolConfig-Output","knowledge_base_rag":"#/components/schemas/KnowledgeBaseRagToolConfig","language_detection":"#/components/schemas/LanguageDetectionToolConfig","play_keypad_touch_tone":"#/components/schemas/PlayDTMFToolConfig","run_subagent":"#/components/schemas/RunSubagentToolConfig-Output","skip_turn":"#/components/schemas/SkipTurnToolConfig","start_procedure":"#/components/schemas/StartProcedureToolConfig-Output","transfer_to_agent":"#/components/schemas/TransferToAgentToolConfig-Output","transfer_to_number":"#/components/schemas/TransferToNumberToolConfig-Output","voicemail_detection":"#/components/schemas/VoicemailDetectionToolConfig"}},"oneOf":[{"$ref":"#/components/schemas/EndCallToolConfig"},{"$ref":"#/components/schemas/LanguageDetectionToolConfig"},{"$ref":"#/components/schemas/TransferToAgentToolConfig-Output"},{"$ref":"#/components/schemas/TransferToNumberToolConfig-Output"},{"$ref":"#/components/schemas/SkipTurnToolConfig"},{"$ref":"#/components/schemas/PlayDTMFToolConfig"},{"$ref":"#/components/schemas/VoicemailDetectionToolConfig"},{"$ref":"#/components/schemas/KnowledgeBaseRagToolConfig"},{"$ref":"#/components/schemas/StartProcedureToolConfig-Output"},{"$ref":"#/components/schemas/EndProcedureToolConfig-Output"},{"$ref":"#/components/schemas/RunSubagentToolConfig-Output"}],"title":"Params"}},"examples":[{"description":"","name":"end_call","params":{"system_tool_type":"end_call"},"type":"system"},{"description":"Custom description for specific use case","name":"transfer_to_agent","params":{"system_tool_type":"transfer_to_agent","transfers":[]},"type":"system"}],"required":["name","params"],"title":"SystemToolConfig"},"TTSConversationalConfig-Input":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","default":"eleven_flash_v2","$ref":"#/components/schemas/TTSConversationalModel","x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","type":"string","default":"cjVigY5qzO86Huf0OWal","minLength":0,"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","type":"boolean","default":true,"title":"Expressive Mode"},"suggested_audio_tags":{"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.","type":"array","items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"maxItems":20,"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","default":"pcm_16000","$ref":"#/components/schemas/TTSOutputFormat"},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","default":3,"$ref":"#/components/schemas/TTSOptimizeStreamingLatency","deprecated":true},"stability":{"description":"The stability of generated speech","type":"number","default":0.5,"maximum":1,"minimum":0,"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","type":"number","default":1,"maximum":1.2,"minimum":0.7,"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","type":"number","default":0.8,"maximum":1,"minimum":0,"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","default":"system_prompt","$ref":"#/components/schemas/TextNormalisationType"},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","type":"boolean","default":true,"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfig"},"TTSConversationalConfig-Output":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","default":"eleven_flash_v2","$ref":"#/components/schemas/TTSConversationalModel","x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","type":"string","default":"cjVigY5qzO86Huf0OWal","minLength":0,"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","type":"boolean","default":true,"title":"Expressive Mode"},"suggested_audio_tags":{"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.","type":"array","items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"maxItems":20,"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","default":"pcm_16000","$ref":"#/components/schemas/TTSOutputFormat"},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","default":3,"$ref":"#/components/schemas/TTSOptimizeStreamingLatency","deprecated":true},"stability":{"description":"The stability of generated speech","type":"number","default":0.5,"maximum":1,"minimum":0,"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","type":"number","default":1,"maximum":1.2,"minimum":0.7,"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","type":"number","default":0.8,"maximum":1,"minimum":0,"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","default":"system_prompt","$ref":"#/components/schemas/TextNormalisationType"},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","type":"boolean","default":true,"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfig"},"TTSConversationalConfigOverride":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSConversationalModel"},{"type":"null"}],"x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"stability":{"description":"The stability of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Similarity Boost","x-convai-client-override":true}},"example":{"model_id":"eleven_turbo_v2","similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfigOverride"},"TTSConversationalConfigOverrideConfig":{"type":"object","properties":{"model_id":{"description":"Whether to allow overriding the model_id field.","type":"boolean","default":false,"title":"Model Id"},"voice_id":{"description":"Whether to allow overriding the voice_id field.","type":"boolean","default":false,"title":"Voice Id"},"stability":{"description":"Whether to allow overriding the stability field.","type":"boolean","default":false,"title":"Stability"},"speed":{"description":"Whether to allow overriding the speed field.","type":"boolean","default":false,"title":"Speed"},"similarity_boost":{"description":"Whether to allow overriding the similarity_boost field.","type":"boolean","default":false,"title":"Similarity Boost"}},"title":"TTSConversationalConfigOverrideConfig"},"TTSConversationalConfigWorkflowOverride-Input":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSConversationalModel"},{"type":"null"}],"x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","anyOf":[{"items":{"$ref":"#/components/schemas/SupportedVoice"},"type":"array"},{"type":"null"}],"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Expressive Mode"},"suggested_audio_tags":{"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.","anyOf":[{"items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"type":"array"},{"type":"null"}],"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSOutputFormat"},{"type":"null"}]},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","anyOf":[{"$ref":"#/components/schemas/TTSOptimizeStreamingLatency"},{"type":"null"}]},"stability":{"description":"The stability of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","anyOf":[{"$ref":"#/components/schemas/TextNormalisationType"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","anyOf":[{"items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"type":"array"},{"type":"null"}],"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfigWorkflowOverride"},"TTSConversationalConfigWorkflowOverride-Output":{"type":"object","properties":{"model_id":{"description":"The model to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSConversationalModel"},{"type":"null"}],"x-convai-client-override":true},"voice_id":{"description":"The voice ID to use for TTS","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id","x-convai-client-override":true,"x-convai-language-override":true},"supported_voices":{"description":"Additional supported voices for the agent","anyOf":[{"items":{"$ref":"#/components/schemas/SupportedVoice"},"type":"array"},{"type":"null"}],"title":"Supported Voices"},"expressive_mode":{"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Expressive Mode"},"suggested_audio_tags":{"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.","anyOf":[{"items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"type":"array"},{"type":"null"}],"title":"Suggested Audio Tags"},"agent_output_audio_format":{"description":"The audio format to use for TTS","anyOf":[{"$ref":"#/components/schemas/TTSOutputFormat"},{"type":"null"}]},"optimize_streaming_latency":{"description":"Deprecated: this field is a no-op and is ignored.","anyOf":[{"$ref":"#/components/schemas/TTSOptimizeStreamingLatency"},{"type":"null"}]},"stability":{"description":"The stability of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Stability","x-convai-client-override":true},"speed":{"description":"The speed of generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed","x-convai-client-override":true},"similarity_boost":{"description":"The similarity boost for generated speech","anyOf":[{"type":"number"},{"type":"null"}],"title":"Similarity Boost","x-convai-client-override":true},"text_normalisation_type":{"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.","anyOf":[{"$ref":"#/components/schemas/TextNormalisationType"},{"type":"null"}]},"pronunciation_dictionary_locators":{"description":"The pronunciation dictionary locators","anyOf":[{"items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"type":"array"},{"type":"null"}],"title":"Pronunciation Dictionary Locators"},"enable_phoneme_tags":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Phoneme Tags"},"audio_filter":{"description":"An optional filter applied to the audio output.","anyOf":[{"$ref":"#/components/schemas/AudioFilterId"},{"type":"null"}],"x-fern-ignore":true}},"example":{"agent_output_audio_format":"pcm_16000","model_id":"eleven_turbo_v2","optimize_streaming_latency":3,"pronunciation_dictionary_locators":[],"similarity_boost":0.8,"speed":1,"stability":0.5,"voice_id":"cjVigY5qzO86Huf0OWal"},"title":"TTSConversationalConfigWorkflowOverride"},"TTSConversationalModel":{"type":"string","default":"eleven_flash_v2","enum":["eleven_turbo_v2","eleven_turbo_v2_5","eleven_flash_v2","eleven_flash_v2_5","eleven_multilingual_v2","eleven_v3_conversational"],"title":"TTSConversationalModel","x-fern-enum":{"eleven_turbo_v2":{"description":"Deprecated: Use eleven_flash_v2 instead.","deprecated":true},"eleven_turbo_v2_5":{"description":"Deprecated: Use eleven_flash_v2_5 instead.","deprecated":true}}},"TTSModelFamily":{"type":"string","enum":["turbo","flash","multilingual","v3_conversational"],"title":"TTSModelFamily","x-fern-enum":{"turbo":{"description":"Deprecated: Use flash instead.","deprecated":true}}},"TTSOptimizeStreamingLatency":{"type":"integer","enum":[0,1,2,3,4],"title":"TTSOptimizeStreamingLatency"},"TTSOutputFormat":{"type":"string","default":"pcm_16000","enum":["pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_44100","pcm_48000","ulaw_8000"],"title":"TTSOutputFormat"},"TelephonyCallConfig":{"type":"object","properties":{"ringing_timeout_secs":{"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.","type":"integer","default":60,"maximum":999,"minimum":1,"title":"Ringing Timeout Secs"},"twilio_call_recording_enabled":{"description":"Whether to record the call using Twilio call recording. Ignored for non-Twilio providers. Recordings are stored in your Twilio account.","type":"boolean","default":false,"title":"Twilio Call Recording Enabled"}},"title":"TelephonyCallConfig"},"TelephonyDirection":{"type":"string","default":"inbound","enum":["inbound","outbound"],"title":"TelephonyDirection"},"TelephonyProvider":{"type":"string","enum":["twilio","sip_trunk","exotel"],"title":"TelephonyProvider"},"TestConditionRationaleCommonModel":{"description":"Structured rationale for test condition results containing individual failure/success reasons.","type":"object","properties":{"messages":{"description":"List of individual parameter evaluation messages or reasons","type":"array","items":{"type":"string"},"title":"Messages"},"summary":{"description":"High-level summary of the evaluation result","type":"string","default":"","title":"Summary"}},"title":"TestConditionRationaleCommonModel"},"TestConditionResultCommonModel":{"type":"object","properties":{"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"rationale":{"anyOf":[{"$ref":"#/components/schemas/TestConditionRationaleCommonModel"},{"type":"null"}]}},"required":["result"],"title":"TestConditionResultCommonModel"},"TestFromConversationMetadata-Input":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"original_agent_reply":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"default":[],"title":"Original Agent Reply"}},"required":["conversation_id","agent_id"],"title":"TestFromConversationMetadata"},"TestFromConversationMetadata-Output":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"original_agent_reply":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"default":[],"title":"Original Agent Reply"}},"required":["conversation_id","agent_id"],"title":"TestFromConversationMetadata"},"TestInvocationSummaryResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the test invocation","type":"string","title":"Id"},"agent_id":{"description":"The ID of the agent this test invocation belongs to","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"branch_id":{"description":"The ID of the branch this test invocation was run on","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"created_at_unix_secs":{"description":"Creation time of the test invocation in unix seconds","type":"integer","title":"Created At Unix Secs"},"test_run_count":{"description":"Number of test runs in this invocation","type":"integer","title":"Test Run Count"},"passed_count":{"description":"Number of test runs that passed","type":"integer","title":"Passed Count"},"failed_count":{"description":"Number of test runs that failed","type":"integer","title":"Failed Count"},"pending_count":{"description":"Number of test runs that are pending","type":"integer","title":"Pending Count"},"title":{"description":"Title of the test invocation - either the single test name or count of tests","type":"string","title":"Title"},"access_info":{"description":"The access information of the test invocation","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"repeat_count":{"description":"Number of times each test was repeated in this invocation","type":"integer","default":1,"title":"Repeat Count"}},"required":["id","created_at_unix_secs","test_run_count","passed_count","failed_count","pending_count","title"],"title":"TestInvocationSummaryResponseModel"},"TestRunMetadata":{"type":"object","properties":{"workspace_id":{"type":"string","title":"Workspace Id"},"test_name":{"type":"string","title":"Test Name"},"ran_by_user_email":{"type":"string","title":"Ran By User Email"},"test_type":{"type":"string","default":"llm","enum":["llm","tool_call","simulation"],"title":"Test Type"}},"required":["workspace_id","test_name","ran_by_user_email"],"title":"TestRunMetadata"},"TestRunResultBucket":{"type":"object","properties":{"test_run_ids":{"type":"array","items":{"type":"string"},"title":"Test Run Ids"},"title":{"description":"Short one-line title for this bucket","type":"string","title":"Title"},"reason":{"description":"Short summary of why the test runs in this bucket passed or failed","type":"string","title":"Reason"},"status":{"$ref":"#/components/schemas/TestRunStatus"}},"required":["test_run_ids","title","reason","status"],"title":"TestRunResultBucket"},"TestRunResultSummary":{"type":"object","properties":{"test_id":{"type":"string","title":"Test Id"},"test_name":{"type":"string","title":"Test Name"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/TestRunResultBucket"},"title":"Buckets"}},"required":["test_id","test_name","buckets"],"title":"TestRunResultSummary"},"TestRunStatus":{"type":"string","enum":["pending","passed","failed"],"title":"TestRunStatus"},"TestSharingMode":{"type":"string","enum":["all","shared_with_me"],"title":"TestSharingMode"},"TestToolResultModel":{"type":"object","properties":{"result_type":{"type":"string","default":"testing_tool_result","const":"testing_tool_result","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"reason":{"type":"string","default":"Skipping tool call in test mode","title":"Reason"}},"title":"TestToolResultModel"},"TestType":{"type":"string","enum":["llm","tool","simulation","folder"],"title":"TestType"},"TestsFeatureUsageCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"tests_ran_after_last_modification":{"type":"boolean","default":false,"title":"Tests Ran After Last Modification"},"tests_ran_in_last_7_days":{"type":"boolean","default":false,"title":"Tests Ran In Last 7 Days"}},"title":"TestsFeatureUsageCommonModel"},"TextNormalisationType":{"description":"Method for converting numbers to words before sending to TTS","type":"string","default":"system_prompt","enum":["system_prompt","elevenlabs"],"title":"TextNormalisationType"},"ThresholdGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false,"title":"Is Enabled"},"threshold":{"type":"number","default":0.3,"maximum":1,"minimum":0,"title":"Threshold"}},"title":"ThresholdGuardrail"},"TimeRange":{"type":"object","properties":{"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"}},"required":["start_ms","end_ms"],"title":"TimeRange"},"ToDialogueSettingsResponseModel":{"type":"object","properties":{"stability":{"description":"Determines how stable the voice is and the randomness between each generation. Lower values introduce broader emotional range for the voice. Higher values can result in a monotonous voice with limited emotion.","default":0.5,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"},"speed":{"anyOf":[{"type":"number","maximum":2,"minimum":0.5},{"type":"null"}],"title":"Speed"}},"example":{"stability":0.5},"title":"ToDialogueSettingsResponseModel"},"TokenResponseModel":{"type":"object","properties":{"token":{"type":"string","title":"Token"},"conversation_id":{"type":"string","title":"Conversation Id"}},"required":["token","conversation_id"],"title":"TokenResponseModel"},"Tool":{"description":"Definition for a tool the client can call.","type":"object","properties":{"name":{"type":"string","title":"Name"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"inputSchema":{"type":"object","additionalProperties":true,"title":"Inputschema"},"outputSchema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Outputschema"},"icons":{"anyOf":[{"items":{"$ref":"#/components/schemas/Icon"},"type":"array"},{"type":"null"}],"title":"Icons"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/ToolAnnotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"execution":{"anyOf":[{"$ref":"#/components/schemas/ToolExecution"},{"type":"null"}]}},"additionalProperties":true,"required":["name","inputSchema"],"title":"Tool"},"ToolAnnotations":{"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.","type":"object","properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"readOnlyHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Readonlyhint"},"destructiveHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Destructivehint"},"idempotentHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idempotenthint"},"openWorldHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Openworldhint"}},"additionalProperties":true,"title":"ToolAnnotations"},"ToolCallSoundBehavior":{"description":"Determines how the tool call sound should be played.","type":"string","default":"auto","enum":["auto","always"],"title":"ToolCallSoundBehavior"},"ToolCallSoundType":{"description":"Predefined tool call sounds; ``None`` means no sound.","type":"string","enum":["typing","elevator1","elevator2","elevator3","elevator4"],"title":"ToolCallSoundType"},"ToolCallUnitTestModel":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Output"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Output"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"}},"title":"ToolCallUnitTestModel"},"ToolErrorHandlingMode":{"description":"Controls how tool errors are processed before being shared with the agent.","type":"string","default":"auto","enum":["auto","summarized","passthrough","hide"],"title":"ToolErrorHandlingMode"},"ToolExecution":{"description":"Execution-related properties for a tool.","type":"object","properties":{"taskSupport":{"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}],"title":"Tasksupport"}},"additionalProperties":true,"title":"ToolExecution"},"ToolExecutionMode":{"type":"string","default":"immediate","enum":["immediate","post_tool_speech","async"],"title":"ToolExecutionMode"},"ToolExecutionResponseModel":{"type":"object","properties":{"tool_id":{"description":"The ID of the tool that was executed","type":"string","title":"Tool Id"},"tool_request_id":{"description":"The request/call ID associated with this tool execution","type":"string","title":"Tool Request Id"},"conversation_id":{"description":"The ID of the conversation where the tool was executed","type":"string","title":"Conversation Id"},"agent_id":{"description":"The ID of the agent that ran the tool","type":"string","title":"Agent Id"},"branch_id":{"description":"The branch ID if the agent has branches","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"timestamp":{"description":"Unix timestamp when the tool was executed","type":"number","title":"Timestamp"},"latency_secs":{"description":"How long the tool execution took","type":"number","title":"Latency Secs"},"is_error":{"description":"Whether the tool execution failed","type":"boolean","default":false,"title":"Is Error"},"request_payload":{"description":"LLM-extracted parameters sent to the tool (JSON string)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Payload"},"response_payload":{"description":"Response returned by the tool","anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Payload"},"error_message":{"description":"Error message if the tool execution failed","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"error_type":{"description":"Error category (internal, customer_config, customer_auth, external_server, external_client, client_timeout, unknown)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Type"},"id":{"type":"string","title":"Id"},"tool_call_details":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output"}],"discriminator":{"propertyName":"type","mapping":{"api_integration_webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetails-Output","client":"#/components/schemas/ConversationHistoryTranscriptToolCallClientDetails","mcp":"#/components/schemas/ConversationHistoryTranscriptToolCallMCPDetails","webhook":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}}},{"type":"null"}],"title":"Tool Call Details"}},"required":["tool_id","tool_request_id","conversation_id","agent_id","timestamp","latency_secs","id"],"title":"ToolExecutionResponseModel"},"ToolInterruptionMode":{"type":"string","default":"allow","enum":["allow","disable_during_tool","disable_during_tool_and_turn"],"title":"ToolInterruptionMode"},"ToolMockConfig":{"type":"object","properties":{"default_return_value":{"type":"string","default":"Tool Called.","title":"Default Return Value"},"default_is_error":{"type":"boolean","default":false,"title":"Default Is Error"}},"title":"ToolMockConfig"},"ToolRequestModel":{"type":"object","properties":{"tool_config":{"description":"Configuration for the tool","discriminator":{"propertyName":"type","mapping":{"client":"#/components/schemas/ClientToolConfig-Input","mcp":"#/components/schemas/MCPToolConfig-Input","system":"#/components/schemas/SystemToolConfig-Input","webhook":"#/components/schemas/WebhookToolConfig-Input"}},"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Input"},{"$ref":"#/components/schemas/ClientToolConfig-Input"},{"$ref":"#/components/schemas/SystemToolConfig-Input"},{"$ref":"#/components/schemas/MCPToolConfig-Input"}],"title":"Tool Config"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["tool_config"],"title":"ToolRequestModel"},"ToolResponseMockConfig-Input":{"type":"object","properties":{"parameter_conditions":{"description":"If the list is empty, the mock will always activate.","type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameter Conditions"},"mock_result":{"description":"The return value the LLM sees when this mock is active.","type":"string","title":"Mock Result"},"is_error":{"description":"If true, the mock result is surfaced to the LLM as a tool error rather than a successful result.","type":"boolean","default":false,"title":"Is Error"}},"required":["mock_result"],"title":"ToolResponseMockConfig"},"ToolResponseMockConfig-Output":{"type":"object","properties":{"parameter_conditions":{"description":"If the list is empty, the mock will always activate.","type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameter Conditions"},"mock_result":{"description":"The return value the LLM sees when this mock is active.","type":"string","title":"Mock Result"},"is_error":{"description":"If true, the mock result is surfaced to the LLM as a tool error rather than a successful result.","type":"boolean","default":false,"title":"Is Error"}},"required":["mock_result"],"title":"ToolResponseMockConfig"},"ToolResponseModel":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"tool_config":{"description":"The type of tool","discriminator":{"propertyName":"type","mapping":{"client":"#/components/schemas/ClientToolConfig-Output","mcp":"#/components/schemas/MCPToolConfig-Output","system":"#/components/schemas/SystemToolConfig-Output","webhook":"#/components/schemas/WebhookToolConfig-Output"}},"oneOf":[{"$ref":"#/components/schemas/WebhookToolConfig-Output"},{"$ref":"#/components/schemas/ClientToolConfig-Output"},{"$ref":"#/components/schemas/SystemToolConfig-Output"},{"$ref":"#/components/schemas/MCPToolConfig-Output"}],"title":"Tool Config"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"usage_stats":{"$ref":"#/components/schemas/ToolUsageStatsResponseModel"},"response_mocks":{"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.","anyOf":[{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Output"},"type":"array"},{"type":"null"}],"title":"Response Mocks"}},"required":["id","tool_config","access_info","usage_stats"],"title":"ToolResponseModel"},"ToolSortBy":{"type":"string","enum":["name","created_at"],"title":"ToolSortBy"},"ToolType":{"type":"string","enum":["system","webhook","client","mcp","workflow","api_integration_webhook","api_integration_mcp","smb"],"title":"ToolType"},"ToolTypeFilter":{"type":"string","enum":["webhook","client","api_integration_webhook"],"title":"ToolTypeFilter"},"ToolUsageStatsResponseModel":{"type":"object","properties":{"total_calls":{"description":"The total number of calls to the tool","type":"integer","default":0,"title":"Total Calls"},"avg_latency_secs":{"type":"number","title":"Avg Latency Secs"}},"required":["avg_latency_secs"],"title":"ToolUsageStatsResponseModel"},"ToolsResponseModel":{"type":"object","properties":{"tools":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseModel"},"title":"Tools"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"required":["tools","has_more"],"title":"ToolsResponseModel"},"TopicDiscoverySettings":{"description":"Per-agent topic-discovery configuration. Cadence and analysis window are\nmanaged internally; this only exposes the customer-facing on/off toggle.","type":"object","properties":{},"title":"TopicDiscoverySettings"},"TopicEvaluationCriteriaAggregate":{"type":"object","properties":{"criteria_id":{"type":"string","title":"Criteria Id"},"success_count":{"type":"integer","default":0,"title":"Success Count"},"failure_count":{"type":"integer","default":0,"title":"Failure Count"},"unknown_count":{"type":"integer","default":0,"title":"Unknown Count"}},"required":["criteria_id"],"title":"TopicEvaluationCriteriaAggregate"},"TopicMetricsAggregate":{"type":"object","properties":{"conversation_count":{"type":"integer","default":0,"title":"Conversation Count"},"sentiment":{"anyOf":[{"$ref":"#/components/schemas/TopicSentimentAggregate"},{"type":"null"}]},"evaluation_criteria":{"type":"array","items":{"$ref":"#/components/schemas/TopicEvaluationCriteriaAggregate"},"title":"Evaluation Criteria"}},"title":"TopicMetricsAggregate"},"TopicSentimentAggregate":{"type":"object","properties":{"sentiment":{"$ref":"#/components/schemas/NumericDistributionAggregate"},"frustration":{"$ref":"#/components/schemas/NumericDistributionAggregate"},"positive_count":{"type":"integer","default":0,"title":"Positive Count"},"neutral_count":{"type":"integer","default":0,"title":"Neutral Count"},"negative_count":{"type":"integer","default":0,"title":"Negative Count"}},"title":"TopicSentimentAggregate"},"TranscriptionOrderItemRequest":{"type":"object","properties":{"kind":{"description":"The type of order item.","type":"string","default":"transcription","const":"transcription","title":"Kind"},"media_ids":{"description":"The IDs of the uploaded media files to transcribe.","type":"array","items":{"$ref":"#/components/schemas/MediaId"},"title":"Media Ids"},"source_language":{"description":"The language code of the source media (e.g. 'en', 'es').","type":"string","title":"Source Language"},"verbatim":{"description":"Whether to transcribe every word exactly, including filler words.","type":"boolean","default":false,"title":"Verbatim"},"instructions":{"description":"Optional free-text instructions for the transcription team.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"}},"example":{"instructions":"Use speaker labels where possible.","kind":"transcription","media_ids":["prodmedia_01jgatk6h0fwxrtbjade61yqhx","prodmedia_01jgb2zd68f8f9tfvbb968wb8z"],"source_language":"en","verbatim":false},"required":["media_ids","source_language"],"title":"TranscriptionOrderItemRequest"},"TransferBranchInfoDefaultingToMain":{"type":"object","properties":{"branch_reason":{"type":"string","const":"defaulting_to_main","title":"Branch Reason"},"branch_id":{"type":"string","title":"Branch Id"}},"required":["branch_reason","branch_id"],"title":"TransferBranchInfoDefaultingToMain"},"TransferBranchInfoTrafficSplit":{"type":"object","properties":{"branch_reason":{"type":"string","const":"traffic_split","title":"Branch Reason"},"branch_id":{"type":"string","title":"Branch Id"},"traffic_percentage":{"type":"number","title":"Traffic Percentage"}},"required":["branch_reason","branch_id","traffic_percentage"],"title":"TransferBranchInfoTrafficSplit"},"TransferToAgentToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_agent","const":"transfer_to_agent","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTransfer-Input"},"title":"Transfers"}},"required":["transfers"],"title":"TransferToAgentToolConfig"},"TransferToAgentToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_agent","const":"transfer_to_agent","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTransfer-Output"},"title":"Transfers"}},"required":["transfers"],"title":"TransferToAgentToolConfig"},"TransferToAgentToolResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_agent_error","const":"transfer_to_agent_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"from_agent":{"type":"string","title":"From Agent"},"error":{"type":"string","title":"Error"}},"required":["from_agent","error"],"title":"TransferToAgentToolResultErrorModel"},"TransferToAgentToolResultSuccessModel-Input":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_agent_success","const":"transfer_to_agent_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"from_agent":{"type":"string","title":"From Agent"},"to_agent":{"type":"string","title":"To Agent"},"to_node":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Node"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"branch_info":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/TransferBranchInfoTrafficSplit"},{"$ref":"#/components/schemas/TransferBranchInfoDefaultingToMain"}],"discriminator":{"propertyName":"branch_reason","mapping":{"defaulting_to_main":"#/components/schemas/TransferBranchInfoDefaultingToMain","traffic_split":"#/components/schemas/TransferBranchInfoTrafficSplit"}}},{"type":"null"}],"title":"Branch Info"},"preserve_client_tts_overrides":{"type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["from_agent","to_agent","condition"],"title":"TransferToAgentToolResultSuccessModel"},"TransferToAgentToolResultSuccessModel-Output":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_agent_success","const":"transfer_to_agent_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"from_agent":{"type":"string","title":"From Agent"},"to_agent":{"type":"string","title":"To Agent"},"to_node":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Node"},"condition":{"type":"string","title":"Condition"},"delay_ms":{"type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"branch_info":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/TransferBranchInfoTrafficSplit"},{"$ref":"#/components/schemas/TransferBranchInfoDefaultingToMain"}],"discriminator":{"propertyName":"branch_reason","mapping":{"defaulting_to_main":"#/components/schemas/TransferBranchInfoDefaultingToMain","traffic_split":"#/components/schemas/TransferBranchInfoTrafficSplit"}}},{"type":"null"}],"title":"Branch Info"},"preserve_client_tts_overrides":{"type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["from_agent","to_agent","condition"],"title":"TransferToAgentToolResultSuccessModel"},"TransferToNumberResultErrorModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_error","const":"transfer_to_number_error","title":"Result Type"},"status":{"type":"string","default":"error","const":"error","title":"Status"},"error":{"type":"string","title":"Error"},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details"}},"required":["error"],"title":"TransferToNumberResultErrorModel"},"TransferToNumberResultExotelSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_exotel_success","const":"transfer_to_number_exotel_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"transfer_number":{"type":"string","title":"Transfer Number"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"agent_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Message"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"required":["transfer_number"],"title":"TransferToNumberResultExotelSuccessModel"},"TransferToNumberResultSipSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_sip_success","const":"transfer_to_number_sip_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"transfer_number":{"type":"string","title":"Transfer Number"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"required":["transfer_number"],"title":"TransferToNumberResultSipSuccessModel"},"TransferToNumberResultTwilioSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"transfer_to_number_twilio_success","const":"transfer_to_number_twilio_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"transfer_number":{"type":"string","title":"Transfer Number"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"client_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Message"},"agent_message":{"type":"string","title":"Agent Message"},"conference_name":{"type":"string","title":"Conference Name"},"post_dial_digits":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Post Dial Digits"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"required":["transfer_number","agent_message","conference_name"],"title":"TransferToNumberResultTwilioSuccessModel"},"TransferToNumberToolConfig-Input":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_number","const":"transfer_to_number","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumberTransfer"},"title":"Transfers"},"enable_client_message":{"description":"Whether to play a message to the client while they wait for transfer. Defaults to true for backward compatibility.","type":"boolean","default":true,"title":"Enable Client Message"}},"required":["transfers"],"title":"TransferToNumberToolConfig"},"TransferToNumberToolConfig-Output":{"type":"object","properties":{"system_tool_type":{"type":"string","default":"transfer_to_number","const":"transfer_to_number","title":"System Tool Type"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumberTransfer"},"title":"Transfers"},"enable_client_message":{"description":"Whether to play a message to the client while they wait for transfer. Defaults to true for backward compatibility.","type":"boolean","default":true,"title":"Enable Client Message"}},"required":["transfers"],"title":"TransferToNumberToolConfig"},"TransferTypeEnum":{"type":"string","default":"conference","enum":["blind","conference","sip_refer"],"title":"TransferTypeEnum"},"TranslatedString":{"type":"object","properties":{"value":{"type":"string","minLength":1,"title":"Value"}},"required":["value"],"title":"TranslatedString"},"TurnConfig":{"type":"object","properties":{"turn_timeout":{"description":"Maximum wait time for the user's reply before re-engaging the user","type":"number","default":7,"title":"Turn Timeout"},"initial_wait_time":{"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.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Wait Time"},"silence_end_call_timeout":{"description":"Maximum wait time since the user last spoke before terminating the call","type":"number","default":-1,"title":"Silence End Call Timeout"},"mode":{"description":"The mode of turn detection","default":"turn","$ref":"#/components/schemas/TurnMode","x-fern-ignore":true},"turn_eagerness":{"description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)","default":"normal","$ref":"#/components/schemas/TurnEagerness"},"spelling_patience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra","default":"auto","$ref":"#/components/schemas/SpellingPatience"},"speculative_turn":{"description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs.","type":"boolean","default":false,"title":"Speculative Turn"},"retranscribe_on_turn_timeout":{"description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing for affected turns.","type":"boolean","default":false,"title":"Retranscribe On Turn Timeout"},"turn_model":{"default":"turn_v3","$ref":"#/components/schemas/TurnModel"},"interruption_ignore_terms":{"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Terms"},"interruption_ignore_term_languages":{"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap.","type":"array","items":{"type":"string"},"title":"Interruption Ignore Term Languages"},"transcribe_on_disabled_interruptions":{"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.","type":"boolean","default":false,"title":"Transcribe On Disabled Interruptions"},"soft_timeout_config":{"description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses.","$ref":"#/components/schemas/SoftTimeoutConfig"}},"example":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"title":"TurnConfig"},"TurnConfigOverride":{"type":"object","properties":{"soft_timeout_config":{"description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses.","anyOf":[{"$ref":"#/components/schemas/SoftTimeoutConfigOverride"},{"type":"null"}]}},"example":{"soft_timeout_config":{"message":"Hhmmmm...yeah."}},"title":"TurnConfigOverride"},"TurnConfigOverrideConfig":{"type":"object","properties":{"soft_timeout_config":{"description":"Configures overrides for nested fields.","$ref":"#/components/schemas/SoftTimeoutConfigOverrideConfig"}},"title":"TurnConfigOverrideConfig"},"TurnConfigWorkflowOverride":{"type":"object","properties":{"turn_timeout":{"description":"Maximum wait time for the user's reply before re-engaging the user","anyOf":[{"type":"number"},{"type":"null"}],"title":"Turn Timeout"},"initial_wait_time":{"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.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Wait Time"},"silence_end_call_timeout":{"description":"Maximum wait time since the user last spoke before terminating the call","anyOf":[{"type":"number"},{"type":"null"}],"title":"Silence End Call Timeout"},"mode":{"description":"The mode of turn detection","anyOf":[{"$ref":"#/components/schemas/TurnMode"},{"type":"null"}],"x-fern-ignore":true},"turn_eagerness":{"description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)","anyOf":[{"$ref":"#/components/schemas/TurnEagerness"},{"type":"null"}]},"spelling_patience":{"description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra","anyOf":[{"$ref":"#/components/schemas/SpellingPatience"},{"type":"null"}]},"speculative_turn":{"description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Speculative Turn"},"retranscribe_on_turn_timeout":{"description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing for affected turns.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Retranscribe On Turn Timeout"},"turn_model":{"description":"Version of the turn detection model to use.","anyOf":[{"$ref":"#/components/schemas/TurnModel"},{"type":"null"}]},"interruption_ignore_terms":{"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Interruption Ignore Terms"},"interruption_ignore_term_languages":{"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Interruption Ignore Term Languages"},"transcribe_on_disabled_interruptions":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Transcribe On Disabled Interruptions"},"soft_timeout_config":{"description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses.","anyOf":[{"$ref":"#/components/schemas/SoftTimeoutConfigWorkflowOverride"},{"type":"null"}]}},"example":{"interruption_ignore_term_languages":[],"interruption_ignore_terms":[],"mode":"turn","retranscribe_on_turn_timeout":false,"silence_end_call_timeout":-1,"soft_timeout_config":{"message":"Hhmmmm...yeah.","timeout_seconds":-1,"use_llm_generated_message":false},"speculative_turn":false,"spelling_patience":"auto","transcribe_on_disabled_interruptions":false,"turn_eagerness":"normal","turn_model":"turn_v3","turn_timeout":7},"title":"TurnConfigWorkflowOverride"},"TurnDetectionType":{"type":"string","default":"semantic_vad","enum":["semantic_vad","server_vad"],"title":"TurnDetectionType"},"TurnEagerness":{"description":"Agent's eagerness to respond. Higher values make agent wait for higher turn probability.","type":"string","default":"normal","enum":["patient","normal","eager"],"title":"TurnEagerness"},"TurnMode":{"type":"string","default":"turn","enum":["silence","turn"],"title":"TurnMode"},"TurnModel":{"description":"Version of the turn detection model to use.","type":"string","default":"turn_v3","enum":["turn_v2","turn_v3"],"title":"TurnModel"},"TwilioEdgeLocation":{"description":"Valid Twilio edge locations.","type":"string","enum":["ashburn","dublin","frankfurt","sao-paulo","singapore","sydney","tokyo","umatilla","roaming"],"title":"TwilioEdgeLocation"},"TwilioOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"callSid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callsid"}},"required":["success","message","conversation_id","callSid"],"title":"TwilioOutboundCallResponse"},"TwilioRegionId":{"description":"Valid Twilio region IDs.","type":"string","enum":["us1","ie1","au1"],"title":"TwilioRegionId"},"TxtExportOptions":{"type":"object","properties":{"max_characters_per_line":{"default":100,"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Characters Per Line"},"include_speakers":{"type":"boolean","default":true,"title":"Include Speakers"},"include_timestamps":{"type":"boolean","default":true,"title":"Include Timestamps"},"format":{"type":"string","const":"txt","title":"Format"},"segment_on_silence_longer_than_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Segment On Silence Longer Than S"},"max_segment_duration_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Segment Duration S"},"max_segment_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Segment Chars"}},"required":["format"],"title":"TxtExportOptions"},"URLAvatar":{"type":"object","properties":{"type":{"description":"The type of the avatar","type":"string","default":"url","const":"url","title":"Type"},"custom_url":{"description":"The custom URL of the avatar","type":"string","default":"","title":"Custom Url"}},"title":"URLAvatar"},"UUITransferConfig":{"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.","type":"object","properties":{"data":{"description":"UUI payload to send on SIP REFER transfers. Supports inline dynamic variables and is hex-encoded at transfer time.","type":"string","maxLength":8192,"title":"Data"},"protocol_discriminator":{"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.","anyOf":[{"type":"string","pattern":"^[0-9A-Fa-f]{2}$"},{"type":"null"}],"title":"Protocol Discriminator"},"protocol_discriminator_mode":{"description":"How to attach protocol_discriminator. 'prefix' prepends the octet to the hex payload (User-to-User=XX;encoding=hex). 'pd_parameter' sends it as a separate parameter (User-to-User=;pd=XX;encoding=hex). Ignored when protocol_discriminator is unset.","type":"string","default":"prefix","enum":["prefix","pd_parameter"],"title":"Protocol Discriminator Mode"}},"required":["data"],"title":"UUITransferConfig"},"UnitTestRunResponseModel":{"type":"object","properties":{"test_run_id":{"type":"string","title":"Test Run Id"},"test_info":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ResponseUnitTestModel"},{"$ref":"#/components/schemas/ToolCallUnitTestModel"},{"$ref":"#/components/schemas/SimulationTestModel"}],"discriminator":{"propertyName":"type","mapping":{"llm":"#/components/schemas/ResponseUnitTestModel","simulation":"#/components/schemas/SimulationTestModel","tool":"#/components/schemas/ToolCallUnitTestModel"}}},{"type":"null"}],"title":"Test Info"},"test_invocation_id":{"type":"string","title":"Test Invocation Id"},"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"},"workflow_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Node Id"},"status":{"$ref":"#/components/schemas/TestRunStatus"},"agent_responses":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Output"},"type":"array"},{"type":"null"}],"title":"Agent Responses"},"test_id":{"type":"string","title":"Test Id"},"test_name":{"type":"string","default":"Unknown Test","title":"Test Name"},"condition_result":{"anyOf":[{"$ref":"#/components/schemas/TestConditionResultCommonModel"},{"type":"null"}]},"last_updated_at_unix":{"type":"integer","title":"Last Updated At Unix"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/TestRunMetadata"},{"type":"null"}]},"root_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"},"root_folder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Name"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},"required":["test_run_id","test_invocation_id","agent_id","status","test_id"],"title":"UnitTestRunResponseModel"},"UnitTestSummaryResponseModel":{"type":"object","properties":{"id":{"description":"The ID of the test","type":"string","title":"Id"},"name":{"description":"Name of the test","type":"string","title":"Name"},"access_info":{"description":"The access information of the test","anyOf":[{"$ref":"#/components/schemas/ResourceAccessInfo"},{"type":"null"}]},"created_at_unix_secs":{"description":"Creation time of the test in unix seconds","type":"integer","title":"Created At Unix Secs"},"last_updated_at_unix_secs":{"description":"Last update time of the test in unix seconds","type":"integer","title":"Last Updated At Unix Secs"},"type":{"description":"Type of the test or entity","$ref":"#/components/schemas/TestType"},"entity_type":{"description":"The type of entity (test or folder)","default":"test","$ref":"#/components/schemas/AgentTestEntityType"},"folder_parent_id":{"description":"The ID of the parent folder","anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Parent Id"},"folder_path":{"description":"The folder path segments from root to this entity","type":"array","items":{"$ref":"#/components/schemas/AgentTestFolderPathSegmentResponseModel"},"title":"Folder Path"},"children_count":{"description":"Number of direct children (tests and subfolders) for folders only","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Children Count"},"conversation_initiation_source":{"description":"Channel the test simulates the conversation as. Null for folders or default behavior.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]}},"required":["id","name","created_at_unix_secs","last_updated_at_unix_secs","type"],"title":"UnitTestSummaryResponseModel"},"UnitTestToolCallEvaluationModel-Input":{"type":"object","properties":{"parameters":{"description":"Parameters to evaluate for the agent's tool call. If empty, the tool call parameters are not evaluated.","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameters","type":"array"},"referenced_tool":{"description":"The tool to evaluate a call against.","anyOf":[{"$ref":"#/components/schemas/ReferencedToolCommonModel"},{"type":"null"}]},"verify_absence":{"description":"Whether to verify that the tool was NOT called.","type":"boolean","default":false,"title":"Verify Absence"},"workflow_node_transition":{"description":"Configuration for testing workflow node transitions. When set, the test will verify the agent transitions to the specified workflow node.","anyOf":[{"$ref":"#/components/schemas/UnitTestWorkflowNodeTransitionEvaluationNodeId"},{"type":"null"}]}},"title":"UnitTestToolCallEvaluationModel"},"UnitTestToolCallEvaluationModel-Output":{"type":"object","properties":{"parameters":{"description":"Parameters to evaluate for the agent's tool call. If empty, the tool call parameters are not evaluated.","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"title":"Parameters","type":"array"},"referenced_tool":{"description":"The tool to evaluate a call against.","anyOf":[{"$ref":"#/components/schemas/ReferencedToolCommonModel"},{"type":"null"}]},"verify_absence":{"description":"Whether to verify that the tool was NOT called.","type":"boolean","default":false,"title":"Verify Absence"},"workflow_node_transition":{"description":"Configuration for testing workflow node transitions. When set, the test will verify the agent transitions to the specified workflow node.","anyOf":[{"$ref":"#/components/schemas/UnitTestWorkflowNodeTransitionEvaluationNodeId"},{"type":"null"}]}},"title":"UnitTestToolCallEvaluationModel"},"UnitTestToolCallParameter":{"type":"object","properties":{"eval":{"discriminator":{"propertyName":"type","mapping":{"anything":"#/components/schemas/MatchAnythingParameterEvaluationStrategy","exact":"#/components/schemas/ExactParameterEvaluationStrategy","llm":"#/components/schemas/LLMParameterEvaluationStrategy","regex":"#/components/schemas/RegexParameterEvaluationStrategy"}},"oneOf":[{"$ref":"#/components/schemas/LLMParameterEvaluationStrategy"},{"$ref":"#/components/schemas/RegexParameterEvaluationStrategy"},{"$ref":"#/components/schemas/ExactParameterEvaluationStrategy"},{"$ref":"#/components/schemas/MatchAnythingParameterEvaluationStrategy"}],"title":"Eval"},"path":{"type":"string","title":"Path"}},"required":["eval","path"],"title":"UnitTestToolCallParameter"},"UnitTestWorkflowNodeTransitionEvaluationNodeId":{"type":"object","properties":{"type":{"type":"string","default":"node_id","const":"node_id","title":"Type"},"agent_id":{"description":"The ID of the agent whose workflow contains the target node.","type":"string","title":"Agent Id"},"target_node_id":{"description":"The ID of the workflow node that the agent should transition to.","type":"string","title":"Target Node Id"}},"required":["agent_id","target_node_id"],"title":"UnitTestWorkflowNodeTransitionEvaluationNodeId"},"UpdateAgentProcedureParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_agent_procedure","const":"update_agent_procedure","title":"Smb Tool Type"}},"title":"UpdateAgentProcedureParams"},"UpdateAgentRuleParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_agent_rule","const":"update_agent_rule","title":"Smb Tool Type"}},"title":"UpdateAgentRuleParams"},"UpdateAssetParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_asset","const":"update_asset","title":"Smb Tool Type"}},"title":"UpdateAssetParams"},"UpdateBasicAuthRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"basic_auth","const":"basic_auth","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"title":"UpdateBasicAuthRequest"},"UpdateBearerAuthRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"bearer_auth","const":"bearer_auth","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}},"title":"UpdateBearerAuthRequest"},"UpdateBookingPageAppearanceParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_booking_page_appearance","const":"update_booking_page_appearance","title":"Smb Tool Type"}},"title":"UpdateBookingPageAppearanceParams"},"UpdateBookingPageSettingsParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_booking_page_settings","const":"update_booking_page_settings","title":"Smb Tool Type"}},"title":"UpdateBookingPageSettingsParams"},"UpdateBusinessInfoParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_business_info","const":"update_business_info","title":"Smb Tool Type"}},"title":"UpdateBusinessInfoParams"},"UpdateCalendarEventParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_calendar_event","const":"update_calendar_event","title":"Smb Tool Type"}},"title":"UpdateCalendarEventParams"},"UpdateClientParams":{"description":"Update an existing client's information.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_client","const":"update_client","title":"Smb Tool Type"}},"title":"UpdateClientParams"},"UpdateCustomerFacingConfigParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_customer_facing_config","const":"update_customer_facing_config","title":"Smb Tool Type"}},"title":"UpdateCustomerFacingConfigParams"},"UpdateEnvironmentVariableRequest":{"type":"object","properties":{"values":{"description":"Values to replace. Set to null to remove an environment (except 'production').","type":"object","additionalProperties":{"anyOf":[{"type":"string","minLength":1},{"$ref":"#/components/schemas/EnvironmentVariableSecretValueRequest"},{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValueRequest"},{"type":"null"}]},"title":"Values"}},"required":["values"],"title":"UpdateEnvironmentVariableRequest"},"UpdateGroupSessionSeatsParams":{"description":"Change the seat count of an existing group session registration.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_group_session_seats","const":"update_group_session_seats","title":"Smb Tool Type"}},"title":"UpdateGroupSessionSeatsParams"},"UpdateHolidayParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_holiday","const":"update_holiday","title":"Smb Tool Type"}},"title":"UpdateHolidayParams"},"UpdateLocationParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_location","const":"update_location","title":"Smb Tool Type"}},"title":"UpdateLocationParams"},"UpdateMusicFinetuneRequestModel":{"type":"object","properties":{"name":{"description":"Updated name for the finetune.","anyOf":[{"type":"string","maxLength":200,"minLength":5},{"type":"null"}],"title":"Name"},"tags":{"description":"Replacement set of tags.","anyOf":[{"items":{"type":"string"},"type":"array","maxItems":5},{"type":"null"}],"title":"Tags"},"primary_genre":{"description":"Updated primary musical genre.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Genre"},"visibility":{"description":"Finetune visibility. Only 'private' and 'workspace' can be set.","anyOf":[{"type":"string","enum":["private","workspace"]},{"type":"null"}],"title":"Visibility"}},"title":"UpdateMusicFinetuneRequestModel"},"UpdateOAuth2ClientCredsRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"oauth2_client_credentials","const":"oauth2_client_credentials","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"extra_params":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Extra Params"},"basic_auth_in_header":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Basic Auth In Header"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"custom_headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Custom Headers"}},"title":"UpdateOAuth2ClientCredsRequest"},"UpdateOAuth2JWTRequest":{"type":"object","properties":{"auth_type":{"type":"string","default":"oauth2_jwt","const":"oauth2_jwt","title":"Auth Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"algorithm":{"anyOf":[{"type":"string","enum":["HS256","HS384","HS512","RS256","RS384","RS512"]},{"type":"null"}],"title":"Algorithm"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"issuer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuer"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audience"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"expiration_seconds":{"anyOf":[{"type":"integer","maximum":86400,"minimum":60},{"type":"null"}],"title":"Expiration Seconds"},"extra_params":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Extra Params"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"token_response_field":{"anyOf":[{"type":"string","enum":["access_token","id_token"]},{"type":"null"}],"title":"Token Response Field"},"secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Key"}},"title":"UpdateOAuth2JWTRequest"},"UpdateOrderRequest":{"type":"object","properties":{"name":{"description":"The new name for the order.","type":"string","maxLength":120,"minLength":1,"title":"Name"}},"example":{"name":"Spanish Dubs"},"required":["name"],"title":"UpdateOrderRequest"},"UpdateOrderResponse":{"type":"object","properties":{"name":{"description":"The updated order name.","type":"string","title":"Name"}},"example":{"name":"Spanish Dubs"},"required":["name"],"title":"UpdateOrderResponse"},"UpdatePhoneNumberRequest":{"type":"object","properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"inbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/InboundSIPTrunkConfigRequestModel"},{"type":"null"}]},"outbound_trunk_config":{"anyOf":[{"$ref":"#/components/schemas/OutboundSIPTrunkConfigRequestModel"},{"type":"null"}]},"livekit_stack":{"anyOf":[{"$ref":"#/components/schemas/LivekitStackType"},{"type":"null"}]},"store_sip_messages":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Store Sip Messages"},"environment":{"description":"Environment to use for resolving environment variables on calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"branch_id":{"description":"Agent branch to use for calls to this number.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"title":"UpdatePhoneNumberRequest"},"UpdateProductParams":{"type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_product","const":"update_product","title":"Smb Tool Type"}},"title":"UpdateProductParams"},"UpdateResponseUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"success_condition":{"description":"A prompt that evaluates whether the agent's response is successful. Should return True or False.","type":"string","default":"","title":"Success Condition"},"success_examples":{"description":"Non-empty list of example responses that should be considered successful","type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"maxItems":5,"title":"Success Examples"},"failure_examples":{"description":"Non-empty list of example responses that should be considered failures","type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"maxItems":5,"title":"Failure Examples"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be moved to the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"UpdateResponseUnitTestRequest"},"UpdateServiceParams":{"description":"Update an existing service's information.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_service","const":"update_service","title":"Smb Tool Type"}},"title":"UpdateServiceParams"},"UpdateSimulationTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"simulation","const":"simulation","title":"Type"},"success_condition":{"description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","anyOf":[{"type":"string"},{"type":"null"}],"deprecated":true,"title":"Success Condition"},"success_conditions":{"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.","type":"array","items":{"type":"string"},"maxItems":30,"title":"Success Conditions"},"simulation_scenario":{"description":"Description of the simulation scenario and user persona for simulation tests.","type":"string","default":"","title":"Simulation Scenario"},"simulation_max_turns":{"description":"Maximum number of conversation turns for simulation tests.","type":"integer","default":5,"maximum":50,"minimum":1,"title":"Simulation Max Turns"},"simulation_environment":{"description":"The environment to use when running this simulation test. If not provided, defaults to 'production'.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Environment"},"tool_mock_config":{"description":"Configuration for which tools to mock and fallback behavior.","$ref":"#/components/schemas/SimulationToolMockBehaviorConfig"},"tool_mock_overrides":{"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).","type":"object","additionalProperties":{"items":{"$ref":"#/components/schemas/ToolResponseMockConfig-Input"},"type":"array"},"title":"Tool Mock Overrides"},"evaluation_model":{"description":"LLM model to use for evaluating simulation results. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"simulated_user_model":{"description":"LLM model for the simulated user. Defaults to Claude Sonnet 4.6.","anyOf":[{"$ref":"#/components/schemas/LLM"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be moved to the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"UpdateSimulationTestRequest"},"UpdateSpeechEngineRequest":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"speech_engine":{"anyOf":[{"$ref":"#/components/schemas/SpeechEngineConfig"},{"type":"null"}]},"asr":{"anyOf":[{"$ref":"#/components/schemas/ASRConversationalConfig"},{"type":"null"}]},"tts":{"anyOf":[{"$ref":"#/components/schemas/TTSConversationalConfig-Input"},{"type":"null"}]},"turn":{"anyOf":[{"$ref":"#/components/schemas/BaseTurnConfig"},{"type":"null"}]},"conversation":{"anyOf":[{"$ref":"#/components/schemas/ConversationConfig-Input"},{"type":"null"}]},"privacy":{"anyOf":[{"$ref":"#/components/schemas/PrivacyConfig-Input"},{"type":"null"}]},"call_limits":{"anyOf":[{"$ref":"#/components/schemas/AgentCallLimits"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"overrides":{"anyOf":[{"$ref":"#/components/schemas/SpeechEngineConversationInitiationClientDataConfig"},{"type":"null"}]}},"title":"UpdateSpeechEngineRequest"},"UpdateStaffParams":{"description":"Update an existing staff member's information.","type":"object","properties":{"smb_tool_type":{"type":"string","default":"update_staff","const":"update_staff","title":"Smb Tool Type"}},"title":"UpdateStaffParams"},"UpdateToolCallUnitTestRequest":{"type":"object","properties":{"from_conversation_metadata":{"description":"Metadata of a conversation this test was created from (if applicable).","anyOf":[{"$ref":"#/components/schemas/TestFromConversationMetadata-Input"},{"type":"null"}]},"dynamic_variables":{"description":"Dynamic variables to replace in the agent config during testing","type":"object","additionalProperties":true,"title":"Dynamic Variables"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModel-Input"},"maxItems":200,"title":"Chat History"},"conversation_initiation_source":{"description":"Simulate the test as if the conversation originated from this channel.","anyOf":[{"$ref":"#/components/schemas/ConversationInitiationSource"},{"type":"null"}]},"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"tool_call_parameters":{"description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated.","anyOf":[{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModel-Input"},{"type":"null"}]},"check_any_tool_matches":{"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.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check Any Tool Matches"},"name":{"type":"string","title":"Name"},"parent_folder_id":{"description":"The ID of the parent folder. If not provided, the test will be moved to the root level.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id"}},"required":["name"],"title":"UpdateToolCallUnitTestRequest"},"UpdateWhatsAppAccountRequest":{"type":"object","properties":{"assigned_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Agent Id"},"enable_messaging":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Messaging"},"enable_audio_message_response":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Audio Message Response"},"enable_typing_indicator":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Typing Indicator"}},"title":"UpdateWhatsAppAccountRequest"},"UpdateWorkspaceMemberResponseModel":{"type":"object","properties":{"status":{"description":"The status of the workspace member update request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"UpdateWorkspaceMemberResponseModel"},"UpsertOrderItemRequest":{"type":"object","properties":{"item":{"description":"The order item to add or update.","$ref":"#/components/schemas/OrderItemRequest-Input"},"item_id":{"description":"The ID of an existing item to update. Omit to create a new item.","anyOf":[{"$ref":"#/components/schemas/ItemId"},{"type":"null"}]}},"examples":[{"item":{"captions_sdh":false,"destination_languages":["hi","fr-FR","de"],"include_captions":true,"include_source_captions":false,"instructions":"Voices don't need to match the originals, prioritize native-sounding voices","kind":"dub","media_id":"prodmedia_01jgatk6h0fwxrtbjade61yqhx","source_language":"en"}},{"item":{"cue_options":{"max_chars_per_line":42,"max_lines_per_cue":2},"destination_languages":["hi","fr-FR","de"],"instructions":"Avoid splitting noun phrases across lines.","kind":"subtitles","media_ids":["prodmedia_01jgatk6h0fwxrtbjade61yqhx","prodmedia_01jgb2zd68f8f9tfvbb968wb8z"],"sdh":false,"source_language":"en"}}],"required":["item"],"title":"UpsertOrderItemRequest"},"UpsertOrderItemResponse":{"type":"object","properties":{"item_id":{"description":"The ID of the upserted order item.","$ref":"#/components/schemas/ItemId"},"quote":{"description":"The quoted price for this item.","anyOf":[{"$ref":"#/components/schemas/QuoteInfo"},{"type":"null"}]}},"example":{"item_id":"proditem_01jgd3qhejfs7rm6swknz2ytjb","quote":{"amount_usd":11}},"required":["item_id"],"title":"UpsertOrderItemResponse"},"UrlModel":{"description":"OCSF URL object.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/url","type":"object","properties":{"url_string":{"description":"Full URL string","anyOf":[{"type":"string"},{"type":"null"}],"title":"Url String"},"scheme":{"description":"URL scheme (e.g., https)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheme"},"hostname":{"description":"URL hostname","anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"port":{"description":"URL port","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Port"},"path":{"description":"URL path","anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"},"query_string":{"description":"URL query string","anyOf":[{"type":"string"},{"type":"null"}],"title":"Query String"}},"additionalProperties":false,"title":"UrlModel"},"UrlSecretAuthResponse":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"url_secret","const":"url_secret","title":"Auth Type"},"provider":{"type":"string","title":"Provider"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","provider","id"],"title":"UrlSecretAuthResponse"},"UsageAggregationInterval":{"description":"The time interval over which to aggregate the usage data.","type":"string","enum":["hour","day","week","month","cumulative"],"title":"UsageAggregationInterval"},"UsageCharactersResponseModel":{"type":"object","properties":{"time":{"description":"The time axis with unix timestamps for each day.","type":"array","items":{"type":"integer"},"title":"Time"},"usage":{"description":"The usage of each breakdown type along the time axis.","type":"object","additionalProperties":{"items":{"type":"number"},"type":"array"},"title":"Usage"}},"example":{"time":[1738252091000,1739404800000],"usage":{"All":[49,1053]}},"required":["time","usage"],"title":"UsageCharactersResponseModel"},"UserAccessManagementActivityId":{"description":"OCSF Activity IDs for User Access Management [3005] events.\n\nSpec: https://schema.ocsf.io/1.6.0/classes/user_access_management","type":"integer","enum":[0,1,2,99],"title":"UserAccessManagementActivityId"},"UserFeedback":{"type":"object","properties":{"score":{"$ref":"#/components/schemas/UserFeedbackScore"},"time_in_call_secs":{"type":"integer","title":"Time In Call Secs"}},"required":["score","time_in_call_secs"],"title":"UserFeedback"},"UserFeedbackScore":{"type":"string","enum":["like","dislike"],"title":"UserFeedbackScore"},"UserModel":{"description":"OCSF User object.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/user","type":"object","properties":{"name":{"description":"Username","anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uid":{"description":"Unique user identifier","anyOf":[{"type":"string"},{"type":"null"}],"title":"Uid"},"type_id":{"description":"Account type identifier","default":1,"$ref":"#/components/schemas/UserTypeId"},"type":{"description":"Account type description","anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"email_addr":{"description":"User email address","anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Addr"},"full_name":{"description":"Full name of the user","anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"domain":{"description":"User's domain","anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},"additionalProperties":false,"title":"UserModel"},"UserResponseModel":{"type":"object","properties":{"user_id":{"description":"The unique identifier of the user.","type":"string","title":"User Id"},"subscription":{"description":"Details of the user's subscription.","$ref":"#/components/schemas/SubscriptionResponseModel"},"is_new_user":{"description":"Whether the user is new. This field is deprecated and will be removed in the future. Use 'created_at' instead.","type":"boolean","deprecated":true,"title":"Is New User"},"xi_api_key":{"description":"The API key of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi Api Key"},"can_use_delayed_payment_methods":{"description":"This field is deprecated and will be removed in a future major version. Instead use subscription.trust_on_invoice_creation.","type":"boolean","deprecated":true,"title":"Can Use Delayed Payment Methods"},"is_onboarding_completed":{"description":"Whether the user's onboarding is completed.","type":"boolean","title":"Is Onboarding Completed"},"is_onboarding_checklist_completed":{"description":"Whether the user's onboarding checklist is completed.","type":"boolean","title":"Is Onboarding Checklist Completed"},"show_compliance_terms":{"description":"Whether to show compliance terms (ToS, Privacy Policy, biometric consent) during onboarding. Set for users signing up from the marketing site.","type":"boolean","default":false,"title":"Show Compliance Terms"},"first_name":{"description":"First name of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"is_api_key_hashed":{"description":"Whether the user's API key is hashed.","type":"boolean","default":false,"title":"Is Api Key Hashed"},"xi_api_key_preview":{"description":"The preview of the user's API key.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Xi Api Key Preview"},"referral_link_code":{"description":"The referral link code of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Link Code"},"partnerstack_partner_default_link":{"description":"The Partnerstack partner default link of the user.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Partnerstack Partner Default Link"},"created_at":{"description":"The unix timestamp of the user's creation. 0 if the user was created before the unix timestamp was added.","type":"integer","title":"Created At"},"seat_type":{"description":"The seat type of the user.","$ref":"#/components/schemas/SeatType"}},"example":{"can_use_delayed_payment_methods":false,"created_at":1753999199,"first_name":"John","is_api_key_hashed":false,"is_new_user":false,"is_onboarding_checklist_completed":true,"is_onboarding_completed":true,"seat_type":"workspace_member","show_compliance_terms":false,"subscription":{"allowed_to_extend_character_limit":false,"billing_period":"monthly_period","can_extend_character_limit":false,"can_extend_voice_limit":false,"can_use_instant_voice_cloning":true,"can_use_professional_voice_cloning":true,"character_count":17231,"character_limit":100000,"character_refresh_period":"monthly_period","currency":"usd","current_overage":{"amount":"0","currency":"usd"},"max_character_limit_extension":10000,"max_credit_limit_extension":10000,"max_voice_add_edits":230,"next_character_count_reset_unix":1738356858,"professional_voice_limit":1,"professional_voice_slots_used":0,"professional_voice_slots_used_in_workspace":0,"status":"free","tier":"trial","voice_add_edit_counter":212,"voice_limit":120,"voice_slots_used":1},"user_id":"1234567890","xi_api_key":"8so27l7327189x0h939ekx293380l920"},"required":["user_id","subscription","is_new_user","can_use_delayed_payment_methods","is_onboarding_completed","is_onboarding_checklist_completed","created_at","seat_type"],"title":"UserResponseModel","x-fern-type-name":"User"},"UserTypeId":{"description":"OCSF User type IDs.\n\nSpec: https://schema.ocsf.io/1.6.0/objects/user","type":"integer","enum":[0,1,2,3,4,99],"title":"UserTypeId"},"UsersSortBy":{"type":"string","enum":["last_contact_unix_secs","conversation_count","average_sentiment_score"],"title":"UsersSortBy"},"UtteranceResponseModel":{"type":"object","properties":{"start":{"description":"The start time of the utterance in seconds.","type":"number","title":"Start"},"end":{"description":"The end time of the utterance in seconds.","type":"number","title":"End"}},"example":{"end":1,"start":0},"required":["start","end"],"title":"UtteranceResponseModel"},"VADConfig":{"type":"object","properties":{"background_voice_detection":{"description":"Whether to use background voice filtering","type":"boolean","default":false,"title":"Background Voice Detection","x-fern-ignore":true}},"example":{"background_voice_detection":false},"title":"VADConfig"},"VADConfigWorkflowOverride":{"type":"object","properties":{"background_voice_detection":{"description":"Whether to use background voice filtering","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Background Voice Detection","x-fern-ignore":true}},"example":{"background_voice_detection":false},"title":"VADConfigWorkflowOverride"},"VOICE_CATEGORY":{"type":"string","enum":["premade","cloned","generated","professional","famous"]},"ValidationError":{"type":"object","properties":{"loc":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"required":["loc","msg","type"],"title":"ValidationError","x-fern-type-name":"ValidationError"},"Verbosity":{"type":"string","enum":["auto","concise","thorough"],"title":"Verbosity"},"VerificationAttemptResponseModel":{"type":"object","properties":{"text":{"description":"The text of the verification attempt.","type":"string","title":"Text"},"date_unix":{"description":"The date of the verification attempt in Unix time.","type":"integer","title":"Date Unix"},"accepted":{"description":"Whether the verification attempt was accepted.","type":"boolean","title":"Accepted"},"similarity":{"description":"The similarity of the verification attempt.","type":"number","title":"Similarity"},"levenshtein_distance":{"description":"The Levenshtein distance of the verification attempt.","type":"number","title":"Levenshtein Distance"},"recording":{"description":"The recording of the verification attempt.","anyOf":[{"$ref":"#/components/schemas/RecordingResponseModel"},{"type":"null"}]}},"example":{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"},"required":["text","date_unix","accepted","similarity","levenshtein_distance"],"title":"VerificationAttemptResponseModel","x-fern-type-name":"VerificationAttemptResponse"},"VerifiedVoiceLanguageResponseModel":{"type":"object","properties":{"language":{"description":"The language of the voice.","type":"string","title":"Language"},"model_id":{"description":"The voice's model ID.","type":"string","title":"Model Id"},"accent":{"description":"The voice's accent, if applicable.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"locale":{"description":"The voice's locale, if applicable.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"preview_url":{"description":"The voice's preview URL, if applicable.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"example":{"accent":"American","language":"en","model_id":"eleven_turbo_v2_5"},"required":["language","model_id"],"title":"VerifiedVoiceLanguageResponseModel"},"VerifyPVCVoiceCaptchaResponseModel":{"type":"object","properties":{"status":{"description":"The status of the verify PVC captcha request. If the request was successful, the status will be 'ok'. Otherwise an error message with status 500 will be returned.","type":"string","title":"Status"}},"example":{"status":"ok"},"required":["status"],"title":"VerifyPVCVoiceCaptchaResponseModel"},"VideoAnalysis":{"type":"object","properties":{"status":{"type":"string","enum":["processing","completed","failed"],"title":"Status"},"data":{"anyOf":[{"$ref":"#/components/schemas/VideoAnalysisResult"},{"type":"null"}]},"updated_at_ms":{"type":"integer","title":"Updated At Ms"}},"required":["status","data"],"title":"VideoAnalysis"},"VideoAnalysisResult":{"type":"object","properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"overall_pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overall Pacing"},"subjects":{"type":"array","items":{"$ref":"#/components/schemas/VideoSubject"},"title":"Subjects"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/VideoSegment"},"title":"Segments"},"key_moments":{"type":"array","items":{"$ref":"#/components/schemas/VideoKeyMoment"},"title":"Key Moments"}},"required":["title","description"],"title":"VideoAnalysisResult"},"VideoKeyMoment":{"type":"object","properties":{"timestamp_ms":{"type":"integer","title":"Timestamp Ms"},"type":{"type":"string","title":"Type"},"description":{"type":"string","title":"Description"}},"required":["timestamp_ms","type","description"],"title":"VideoKeyMoment"},"VideoSegment":{"type":"object","properties":{"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"},"description":{"type":"string","title":"Description"},"subjects":{"type":"array","items":{"type":"string"},"title":"Subjects"},"shot_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shot Type"},"camera_movement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Camera Movement"},"transition_in":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transition In"},"has_speech":{"type":"boolean","default":false,"title":"Has Speech"},"has_music":{"type":"boolean","default":false,"title":"Has Music"},"pacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pacing"}},"required":["start_ms","end_ms","description"],"title":"VideoSegment"},"VideoSubject":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"required":["name","description"],"title":"VideoSubject"},"VisitedAgentRef":{"description":"An agent (and optional branch) that participated in the call, in first-seen transcript order.","type":"object","properties":{"agent_id":{"type":"string","title":"Agent Id"},"branch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Id"}},"required":["agent_id"],"title":"VisitedAgentRef"},"VoiceDesignRequestModel":{"type":"object","properties":{"voice_description":{"description":"Description to use for the created voice.","type":"string","examples":["A sassy squeaky mouse"],"maxLength":1000,"minLength":20,"title":"Voice Description"},"model_id":{"description":"Model to use for the voice generation. Possible values: eleven_multilingual_ttv_v2, eleven_ttv_v3.","type":"string","default":"eleven_multilingual_ttv_v2","enum":["eleven_multilingual_ttv_v2","eleven_ttv_v3"],"examples":["eleven_multilingual_ttv_v2"],"title":"Model Id"},"text":{"description":"Text to generate, text length has to be between 100 and 1000.","anyOf":[{"type":"string","maxLength":1000,"minLength":100},{"type":"null"}],"examples":["Every act of kindness, no matter how small, carries value and can make a difference, as no gesture of goodwill is ever wasted."],"title":"Text"},"auto_generate_text":{"description":"Whether to automatically generate a text suitable for the voice description.","type":"boolean","default":false,"title":"Auto Generate Text"},"loudness":{"description":"Controls the volume level of the generated voice. -1 is quietest, 1 is loudest, 0 corresponds to roughly -24 LUFS.","type":"number","default":0.5,"examples":[0.5],"maximum":1,"minimum":-1,"title":"Loudness"},"seed":{"description":"Random number that controls the voice generation. Same seed with same inputs produces same voice.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[11],"title":"Seed"},"guidance_scale":{"description":"Controls how closely the AI follows the prompt. Lower numbers give the AI more freedom to be creative, while higher numbers force it to stick more to the prompt. High numbers can cause voice to sound artificial or robotic. We recommend to use longer, more detailed prompts at lower Guidance Scale.","type":"number","default":5,"examples":[5],"maximum":100,"minimum":0,"title":"Guidance Scale"},"stream_previews":{"description":"Determines whether the Text to Voice previews should be included in the response. If true, only the generated IDs will be returned which can then be streamed via the /v1/text-to-voice/:generated_voice_id/stream endpoint.","type":"boolean","default":false,"examples":[true],"title":"Stream Previews"},"should_enhance":{"description":"Whether to enhance the voice description using AI to add more detail and improve voice generation quality. When enabled, the system will automatically expand simple prompts into more detailed voice descriptions. Defaults to False","type":"boolean","default":false,"examples":[true],"title":"Should Enhance"},"remixing_session_id":{"description":"The remixing session id.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Id"},"remixing_session_iteration_id":{"description":"The id of the remixing session iteration where these generations should be attached to. If not provided, a new iteration will be created.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Iteration Id"},"quality":{"description":"Higher quality results in better voice output but less variety.","anyOf":[{"type":"number","maximum":1,"minimum":-1},{"type":"null"}],"examples":[0.9],"title":"Quality"},"reference_audio_base64":{"description":"Reference audio to use for the voice generation. The audio should be base64 encoded. Only supported when using the eleven_ttv_v3 model.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Audio Base64"},"prompt_strength":{"description":"Controls the balance of prompt versus reference audio when generating voice samples. 0 means almost no prompt influence, 1 means almost no reference audio influence. Only supported when using the eleven_ttv_v3 model.","anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"examples":[0.25],"title":"Prompt Strength"}},"required":["voice_description"],"title":"VoiceDesignRequestModel"},"VoiceMailDetectionResultSuccessModel":{"type":"object","properties":{"result_type":{"type":"string","default":"voicemail_detection_success","const":"voicemail_detection_success","title":"Result Type"},"status":{"type":"string","default":"success","const":"success","title":"Status"},"voicemail_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voicemail Message"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"title":"VoiceMailDetectionResultSuccessModel"},"VoicePreviewResponseModel":{"type":"object","properties":{"audio_base_64":{"description":"The base64 encoded audio of the preview.","type":"string","title":"Audio Base 64"},"generated_voice_id":{"description":"The ID of the generated voice. Use it to create a voice from the preview.","type":"string","title":"Generated Voice Id"},"media_type":{"description":"The media type of the preview.","type":"string","title":"Media Type"},"duration_secs":{"description":"The duration of the preview in seconds.","type":"number","title":"Duration Secs"},"language":{"description":"The language of the preview.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"required":["audio_base_64","generated_voice_id","media_type","duration_secs","language"],"title":"VoicePreviewResponseModel"},"VoicePreviewsRequestModel":{"type":"object","properties":{"voice_description":{"description":"Description to use for the created voice.","type":"string","examples":["A sassy squeaky mouse"],"maxLength":1000,"minLength":20,"title":"Voice Description"},"text":{"description":"Text to generate, text length has to be between 100 and 1000.","anyOf":[{"type":"string","maxLength":1000,"minLength":100},{"type":"null"}],"examples":["Every act of kindness, no matter how small, carries value and can make a difference, as no gesture of goodwill is ever wasted."],"title":"Text"},"auto_generate_text":{"description":"Whether to automatically generate a text suitable for the voice description.","type":"boolean","default":false,"title":"Auto Generate Text"},"loudness":{"description":"Controls the volume level of the generated voice. -1 is quietest, 1 is loudest, 0 corresponds to roughly -24 LUFS.","type":"number","default":0.5,"examples":[0.5],"maximum":1,"minimum":-1,"title":"Loudness"},"quality":{"description":"Higher quality results in better voice output but less variety.","type":"number","default":0.9,"examples":[0.9],"maximum":1,"minimum":-1,"title":"Quality"},"seed":{"description":"Random number that controls the voice generation. Same seed with same inputs produces same voice.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[11],"title":"Seed"},"guidance_scale":{"description":"Controls how closely the AI follows the prompt. Lower numbers give the AI more freedom to be creative, while higher numbers force it to stick more to the prompt. High numbers can cause voice to sound artificial or robotic. We recommend to use longer, more detailed prompts at lower Guidance Scale.","type":"number","default":5,"examples":[5],"maximum":100,"minimum":0,"title":"Guidance Scale"},"should_enhance":{"description":"Whether to enhance the voice description using AI to add more detail and improve voice generation quality. When enabled, the system will automatically expand simple prompts into more detailed voice descriptions. Defaults to False","type":"boolean","default":false,"examples":[true],"title":"Should Enhance"}},"required":["voice_description"],"title":"VoicePreviewsRequestModel","x-fern-type-name":"VoiceDesignRequest"},"VoicePreviewsResponseModel":{"type":"object","properties":{"previews":{"description":"The previews of the generated voices.","type":"array","items":{"$ref":"#/components/schemas/VoicePreviewResponseModel"},"title":"Previews"},"text":{"description":"The text used to preview the voices.","type":"string","title":"Text"}},"required":["previews","text"],"title":"VoicePreviewsResponseModel","x-fern-type-name":"VoiceDesignPreviewResponse"},"VoiceRemixRequestModel":{"type":"object","properties":{"voice_description":{"description":"Description of the changes to make to the voice.","type":"string","examples":["Make the voice have a higher pitch."],"maxLength":1000,"minLength":5,"title":"Voice Description"},"text":{"description":"Text to generate, text length has to be between 100 and 1000.","anyOf":[{"type":"string","maxLength":1000,"minLength":100},{"type":"null"}],"examples":["Every act of kindness, no matter how small, carries value and can make a difference, as no gesture of goodwill is ever wasted."],"title":"Text"},"auto_generate_text":{"description":"Whether to automatically generate a text suitable for the voice description.","type":"boolean","default":false,"title":"Auto Generate Text"},"loudness":{"description":"Controls the volume level of the generated voice. -1 is quietest, 1 is loudest, 0 corresponds to roughly -24 LUFS.","type":"number","default":0.5,"examples":[0.5],"maximum":1,"minimum":-1,"title":"Loudness"},"seed":{"description":"Random number that controls the voice generation. Same seed with same inputs produces same voice.","anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"examples":[11],"title":"Seed"},"guidance_scale":{"description":"Controls how closely the AI follows the prompt. Lower numbers give the AI more freedom to be creative, while higher numbers force it to stick more to the prompt. High numbers can cause voice to sound artificial or robotic. We recommend to use longer, more detailed prompts at lower Guidance Scale.","type":"number","default":2,"examples":[5],"maximum":100,"minimum":0,"title":"Guidance Scale"},"stream_previews":{"description":"Determines whether the Text to Voice previews should be included in the response. If true, only the generated IDs will be returned which can then be streamed via the /v1/text-to-voice/:generated_voice_id/stream endpoint.","type":"boolean","default":false,"examples":[true],"title":"Stream Previews"},"remixing_session_id":{"description":"The remixing session id.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Id"},"remixing_session_iteration_id":{"description":"The id of the remixing session iteration where these generations should be attached to. If not provided, a new iteration will be created.","anyOf":[{"type":"string"},{"type":"null"}],"examples":["123"],"title":"Remixing Session Iteration Id"},"prompt_strength":{"description":"Controls the balance of prompt versus reference audio when generating voice samples. 0 means almost no prompt influence, 1 means almost no reference audio influence. Only supported when using the eleven_ttv_v3 model.","anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"examples":[0.25],"title":"Prompt Strength"}},"required":["voice_description"],"title":"VoiceRemixRequestModel"},"VoiceResponseModel":{"type":"object","properties":{"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"},"name":{"description":"The name of the voice.","type":"string","title":"Name"},"samples":{"description":"List of samples associated with the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/SampleResponseModel"},"type":"array"},{"type":"null"}],"title":"Samples"},"category":{"description":"The category of the voice.","type":"string","enum":["generated","cloned","premade","professional","famous","high_quality"],"title":"Category"},"fine_tuning":{"description":"Fine-tuning information for the voice.","anyOf":[{"$ref":"#/components/schemas/FineTuningResponseModel"},{"type":"null"}]},"labels":{"description":"Labels associated with the voice.","type":"object","additionalProperties":{"type":"string"},"title":"Labels"},"description":{"description":"The description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"preview_url":{"description":"The preview URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"},"available_for_tiers":{"description":"The tiers the voice is available for.","type":"array","items":{"type":"string"},"title":"Available For Tiers"},"settings":{"description":"The settings of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceSettingsResponseModel"},{"type":"null"}]},"sharing":{"description":"The sharing information of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceSharingResponseModel"},{"type":"null"}]},"high_quality_base_model_ids":{"description":"The base model IDs for high-quality voices.","type":"array","items":{"type":"string"},"title":"High Quality Base Model Ids"},"verified_languages":{"description":"The verified languages of the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/VerifiedVoiceLanguageResponseModel"},"type":"array"},{"type":"null"}],"title":"Verified Languages"},"collection_ids":{"description":"The IDs of collections this voice belongs to.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Collection Ids"},"safety_control":{"description":"The safety controls of the voice.","anyOf":[{"type":"string","enum":["NONE","BAN","CAPTCHA","ENTERPRISE_BAN","ENTERPRISE_CAPTCHA"]},{"type":"null"}],"title":"Safety Control"},"voice_verification":{"description":"The voice verification of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceVerificationResponseModel"},{"type":"null"}]},"permission_on_resource":{"description":"The permission on the resource of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Permission On Resource"},"is_owner":{"description":"Whether the voice is owned by the user.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Owner"},"is_legacy":{"description":"Whether the voice is legacy.","type":"boolean","default":false,"title":"Is Legacy"},"is_mixed":{"description":"Whether the voice is mixed.","type":"boolean","default":false,"title":"Is Mixed"},"favorited_at_unix":{"description":"Timestamp when the voice was marked as favorite in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Favorited At Unix"},"created_at_unix":{"description":"The creation time of the voice in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"is_bookmarked":{"description":"Whether the voice is bookmarked by the current user. Only relevant for community (library-copied) voices.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Bookmarked"},"recording_quality":{"description":"The recording quality of the voice as determined by the review pipeline.","anyOf":[{"type":"string","enum":["studio","good","ok","poor","bad"]},{"type":"null"}],"title":"Recording Quality"},"labelling_status":{"description":"The review pipeline status of the voice.","anyOf":[{"type":"string","enum":["in_review","review_complete"]},{"type":"null"}],"title":"Labelling Status"},"recording_quality_reason":{"description":"The reason for the recording quality assessment, as determined by the review pipeline.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Quality Reason"}},"example":{"available_for_tiers":["creator","enterprise"],"category":"professional","description":"A warm, expressive voice with a touch of humor.","fine_tuning":{"is_allowed_to_fine_tune":true,"manual_verification_requested":false,"state":{"eleven_multilingual_v2":"fine_tuned"},"verification_attempts_count":2,"verification_failures":[]},"high_quality_base_model_ids":["eleven_v2_flash","eleven_flash_v2","eleven_turbo_v2_5","eleven_multilingual_v2","eleven_v2_5_flash","eleven_flash_v2_5","eleven_turbo_v2"],"is_legacy":false,"is_mixed":false,"is_owner":false,"labels":{"accent":"American","age":"middle-aged","description":"expressive","gender":"female","use_case":"social media"},"name":"Rachel","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3","settings":{"similarity_boost":1,"speed":1,"stability":1,"style":0,"use_speaker_boost":true},"sharing":{"category":"professional","cloned_by_count":50,"date_unix":1714204800,"description":"A female voice with a soft and friendly tone.","disable_at_unix":1714204800,"enabled_in_library":true,"featured":true,"financial_rewards_enabled":true,"free_users_allowed":true,"history_item_sample_id":"DCwhRBWXzGAHq8TQ4Fs18","labels":{"accent":"American","gender":"female"},"liked_by_count":100,"live_moderation_enabled":true,"moderation_check":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"name":"Rachel","notice_period":30,"original_voice_id":"DCwhRBWXzGAHq8TQ4Fs18","public_owner_id":"DCwhRBWXzGAHq8TQ4Fs18","rate":0.05,"reader_app_enabled":true,"reader_restricted_on":[{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"}],"review_status":"allowed","status":"enabled","voice_mixing_allowed":false,"whitelisted_emails":["example@example.com"]},"verified_languages":[{"accent":"american","language":"en","locale":"en-US","model_id":"eleven_multilingual_v2","preview_url":"https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3"}],"voice_id":"21m00Tcm4TlvDq8ikWAM","voice_verification":{"is_verified":true,"language":"en","requires_verification":false,"verification_attempts":[{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"}],"verification_attempts_count":0,"verification_failures":[]}},"required":["voice_id"],"title":"VoiceResponseModel","x-fern-type-name":"Voice"},"VoiceSamplePreviewResponseModel":{"type":"object","properties":{"audio_base_64":{"description":"The base64 encoded audio.","type":"string","title":"Audio Base 64"},"voice_id":{"description":"The ID of the voice.","type":"string","title":"Voice Id"},"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"media_type":{"description":"The media type of the audio.","type":"string","title":"Media Type"},"duration_secs":{"description":"The duration of the audio in seconds.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Secs"}},"example":{"audio_base_64":"audio_base_64","duration_secs":5,"media_type":"audio/mpeg","sample_id":"DCwhRBWXzGAHq8TQ4Fs18","voice_id":"DCwhRBWXzGAHq8TQ4Fs18"},"required":["audio_base_64","voice_id","sample_id","media_type"],"title":"VoiceSamplePreviewResponseModel"},"VoiceSampleVisualWaveformResponseModel":{"type":"object","properties":{"sample_id":{"description":"The ID of the sample.","type":"string","title":"Sample Id"},"visual_waveform":{"description":"The visual waveform of the sample, represented as a list of floats.","type":"array","items":{"type":"number"},"title":"Visual Waveform"}},"example":{"sample_id":"DCwhRBWXzGAHq8TQ4Fs18","visual_waveform":[0.1,0.2,0.3,0.4,0.5]},"required":["sample_id","visual_waveform"],"title":"VoiceSampleVisualWaveformResponseModel"},"VoiceSegment":{"type":"object","properties":{"voice_id":{"description":"The voice ID used for this segment","type":"string","title":"Voice Id"},"start_time_seconds":{"description":"Start time of this voice segment","type":"number","title":"Start Time Seconds"},"end_time_seconds":{"description":"End time of this voice segment","type":"number","title":"End Time Seconds"},"character_start_index":{"description":"Start index in the characters array","type":"integer","title":"Character Start Index"},"character_end_index":{"description":"End index in the characters array (exclusive)","type":"integer","title":"Character End Index"},"dialogue_input_index":{"description":"Line of the dialogue (script) that this segment is a part of.","type":"integer","title":"Dialogue Input Index"}},"required":["voice_id","start_time_seconds","end_time_seconds","character_start_index","character_end_index","dialogue_input_index"],"title":"VoiceSegment"},"VoiceSettings":{"type":"object","properties":{"cloning_strength":{"description":"How strongly the dubbed speakers clone the source voices, 0 to 10.","type":"integer","default":7,"maximum":10,"minimum":0,"title":"Cloning Strength"}},"title":"VoiceSettings"},"VoiceSettingsResponseModel":{"type":"object","properties":{"stability":{"description":"Determines how stable the voice is and the randomness between each generation. Lower values introduce broader emotional range for the voice. Higher values can result in a monotonous voice with limited emotion.","default":0.5,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Stability"},"use_speaker_boost":{"description":"This setting boosts the similarity to the original speaker. Using this setting requires a slightly higher computational load, which in turn increases latency.","default":true,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Speaker Boost"},"similarity_boost":{"description":"Determines how closely the AI should adhere to the original voice when attempting to replicate it.","default":0.75,"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Similarity Boost"},"style":{"description":"Determines the style exaggeration of the voice. This setting attempts to amplify the style of the original speaker. It does consume additional computational resources and might increase latency if set to anything other than 0.","default":0,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Style"},"speed":{"description":"Adjusts the speed of the voice. A value of 1.0 is the default speed, while values less than 1.0 slow down the speech, and values greater than 1.0 speed it up.","default":1,"anyOf":[{"type":"number"},{"type":"null"}],"title":"Speed"}},"example":{"similarity_boost":1,"speed":1,"stability":1,"style":0,"use_speaker_boost":true},"title":"VoiceSettingsResponseModel","x-fern-type-name":"VoiceSettings","required":[]},"VoiceSharingModerationCheckResponseModel":{"type":"object","properties":{"date_checked_unix":{"description":"The date the moderation check was made in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Date Checked Unix"},"name_value":{"description":"The name value of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Value"},"name_check":{"description":"Whether the name check was successful.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Name Check"},"description_value":{"description":"The description value of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Value"},"description_check":{"description":"Whether the description check was successful.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Description Check"},"sample_ids":{"description":"A list of sample IDs.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sample Ids"},"sample_checks":{"description":"A list of sample checks.","anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Sample Checks"},"captcha_ids":{"description":"A list of captcha IDs.","anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Captcha Ids"},"captcha_checks":{"description":"A list of CAPTCHA check values.","anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Captcha Checks"}},"example":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"title":"VoiceSharingModerationCheckResponseModel"},"VoiceSharingResponseModel":{"type":"object","properties":{"status":{"description":"The status of the voice sharing.","type":"string","enum":["enabled","disabled","copied","copied_disabled"],"title":"Status","x-fern-type-name":"voice_sharing_state"},"history_item_sample_id":{"description":"The sample ID of the history item.","anyOf":[{"type":"string"},{"type":"null"}],"title":"History Item Sample Id"},"date_unix":{"description":"The date of the voice sharing in Unix time.","type":"integer","title":"Date Unix"},"whitelisted_emails":{"description":"A list of whitelisted emails.","type":"array","items":{"type":"string"},"title":"Whitelisted Emails"},"public_owner_id":{"description":"The ID of the public owner.","type":"string","title":"Public Owner Id"},"original_voice_id":{"description":"The ID of the original voice.","type":"string","title":"Original Voice Id"},"financial_rewards_enabled":{"description":"Whether financial rewards are enabled.","type":"boolean","title":"Financial Rewards Enabled"},"free_users_allowed":{"description":"Whether free users are allowed.","type":"boolean","title":"Free Users Allowed"},"live_moderation_enabled":{"description":"Whether live moderation is enabled.","type":"boolean","title":"Live Moderation Enabled"},"rate":{"description":"The rate of the voice sharing.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"},"fiat_rate":{"description":"The rate of the voice sharing in USD per 1000 credits.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Fiat Rate"},"notice_period":{"description":"The notice period of the voice sharing.","type":"integer","title":"Notice Period"},"disable_at_unix":{"description":"The date of the voice sharing in Unix time.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Disable At Unix"},"voice_mixing_allowed":{"description":"Whether voice mixing is allowed.","type":"boolean","title":"Voice Mixing Allowed"},"featured":{"description":"Whether the voice is featured.","type":"boolean","title":"Featured"},"category":{"description":"The category of the voice.","type":"string","enum":["generated","cloned","premade","professional","famous","high_quality"],"title":"Category"},"reader_app_enabled":{"description":"Whether the reader app is enabled.","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reader App Enabled"},"image_url":{"description":"The image URL of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"ban_reason":{"description":"The ban reason of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Ban Reason"},"liked_by_count":{"description":"The number of likes on the voice.","type":"integer","title":"Liked By Count"},"cloned_by_count":{"description":"The number of clones on the voice.","type":"integer","title":"Cloned By Count"},"name":{"description":"The name of the voice.","type":"string","title":"Name"},"description":{"description":"The description of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"description":"The labels of the voice.","type":"object","additionalProperties":{"type":"string"},"title":"Labels"},"review_status":{"description":"The review status of the voice.","type":"string","enum":["not_requested","pending","declined","allowed","allowed_with_changes"],"title":"Review Status","x-fern-type-name":"review_status"},"review_message":{"description":"The review message of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Message"},"enabled_in_library":{"description":"Whether the voice is enabled in the library.","type":"boolean","title":"Enabled In Library"},"instagram_username":{"description":"The Instagram username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Instagram Username"},"twitter_username":{"description":"The Twitter/X username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitter Username"},"youtube_username":{"description":"The YouTube username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Youtube Username"},"tiktok_username":{"description":"The TikTok username of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiktok Username"},"moderation_check":{"description":"The moderation check of the voice.","anyOf":[{"$ref":"#/components/schemas/VoiceSharingModerationCheckResponseModel"},{"type":"null"}]},"reader_restricted_on":{"description":"The reader restricted on of the voice.","anyOf":[{"items":{"$ref":"#/components/schemas/ReaderResourceResponseModel"},"type":"array"},{"type":"null"}],"title":"Reader Restricted On"}},"example":{"category":"professional","cloned_by_count":50,"date_unix":1714204800,"description":"A female voice with a soft and friendly tone.","disable_at_unix":1714204800,"enabled_in_library":true,"featured":true,"financial_rewards_enabled":true,"free_users_allowed":true,"history_item_sample_id":"DCwhRBWXzGAHq8TQ4Fs18","labels":{"accent":"American","gender":"female"},"liked_by_count":100,"live_moderation_enabled":true,"moderation_check":{"captcha_checks":[0.95,0.98],"captcha_ids":["captcha1","captcha2"],"date_checked_unix":1714204800,"description_check":true,"description_value":"A female voice with a soft and friendly tone.","name_check":true,"name_value":"Rachel","sample_checks":[0.95,0.98],"sample_ids":["sample1","sample2"]},"name":"Rachel","notice_period":30,"original_voice_id":"DCwhRBWXzGAHq8TQ4Fs18","public_owner_id":"DCwhRBWXzGAHq8TQ4Fs18","rate":0.05,"reader_app_enabled":true,"reader_restricted_on":[{"resource_id":"FCwhRBWXzGAHq8TQ4Fs18","resource_type":"read"}],"review_status":"allowed","status":"enabled","voice_mixing_allowed":false,"whitelisted_emails":["example@example.com"]},"required":[],"title":"VoiceSharingResponseModel","x-fern-type-name":"VoiceSharingResponse"},"VoiceStatisticsResponseModel":{"type":"object","properties":{"project_voice_ref_id":{"description":"The project voice reference ID.","type":"string","title":"Project Voice Ref Id"},"characters_unconverted":{"description":"The number of unconverted characters for this voice.","type":"integer","title":"Characters Unconverted"},"characters_converted":{"description":"The number of converted characters for this voice.","type":"integer","title":"Characters Converted"},"credits_needed_to_convert":{"description":"The number of credits needed to convert the remaining audio for this voice.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Needed To Convert"},"voice_id":{"description":"The voice ID.","type":"string","deprecated":true,"readOnly":true,"title":"Voice Id"}},"required":["project_voice_ref_id","characters_unconverted","characters_converted","voice_id"],"title":"VoiceStatisticsResponseModel"},"VoiceVerificationResponseModel":{"type":"object","properties":{"requires_verification":{"description":"Whether the voice requires verification.","type":"boolean","title":"Requires Verification"},"is_verified":{"description":"Whether the voice has been verified.","type":"boolean","title":"Is Verified"},"verification_failures":{"description":"List of verification failures.","type":"array","items":{"type":"string"},"title":"Verification Failures"},"verification_attempts_count":{"description":"The number of verification attempts.","type":"integer","title":"Verification Attempts Count"},"language":{"description":"The language of the voice.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"verification_attempts":{"description":"Number of times a verification was attempted.","anyOf":[{"items":{"$ref":"#/components/schemas/VerificationAttemptResponseModel"},"type":"array"},{"type":"null"}],"title":"Verification Attempts"}},"example":{"is_verified":true,"language":"en","requires_verification":false,"verification_attempts":[{"accepted":true,"date_unix":1714204800,"levenshtein_distance":2,"recording":{"mime_type":"audio/mpeg","recording_id":"CwhRBWXzGAHq8TQ4Fs17","size_bytes":1000000,"transcription":"Hello, how are you?","upload_date_unix":1714204800},"similarity":0.95,"text":"Hello, how are you?"}],"verification_attempts_count":0,"verification_failures":[]},"required":["requires_verification","is_verified","verification_failures","verification_attempts_count"],"title":"VoiceVerificationResponseModel","x-fern-type-name":"VoiceVerificationResponse"},"VoicemailDetectionToolConfig":{"description":"Allows the agent to detect when a voicemail system is encountered.\n\nThis tool should be invoked by the LLM when it detects that the call has been\nanswered by a voicemail system rather than a human. If a voicemail message\nis configured, it will be played; otherwise the call will end immediately.","type":"object","properties":{"system_tool_type":{"type":"string","default":"voicemail_detection","const":"voicemail_detection","title":"System Tool Type"},"voicemail_message":{"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}}).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voicemail Message"}},"title":"VoicemailDetectionToolConfig"},"WebhookAuthMethodType":{"type":"string","enum":["hmac","oauth2","mtls"],"title":"WebhookAuthMethodType"},"WebhookEventType":{"type":"string","enum":["transcript","audio","call_initiation_failure","unredacted_transcript","unredacted_audio"],"title":"WebhookEventType"},"WebhookHMACSettings":{"description":"Settings for creating an HMAC-authenticated webhook","type":"object","properties":{"auth_type":{"description":"The authentication type for this webhook","type":"string","const":"hmac","title":"Auth Type"},"name":{"description":"The display name for this webhook","type":"string","title":"Name"},"webhook_url":{"description":"The HTTPS callback URL that will be called when this webhook is triggered","type":"string","title":"Webhook Url"},"request_headers":{"description":"Optional custom request headers to include with each webhook delivery","anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Request Headers"}},"required":["auth_type","name","webhook_url"],"title":"WebhookHMACSettings"},"WebhookToolApiSchemaConfig-Input":{"type":"object","properties":{"request_headers":{"description":"Headers that should be included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"url":{"description":"The URL that the webhook will be sent to. May include path parameters, e.g. https://example.com/agents/{agent_id}","type":"string","title":"Url"},"method":{"description":"The HTTP method to use for the webhook","type":"string","default":"GET","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"Method"},"path_params_schema":{"description":"Schema for path parameters, if any. The keys should match the placeholders in the URL.","type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"title":"Path Params Schema"},"query_params_schema":{"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","anyOf":[{"$ref":"#/components/schemas/QueryParamsJsonSchema"},{"type":"null"}]},"request_body_schema":{"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","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"response_body_schema":{"description":"Schema describing the expected response body structure. For documentation only; not surfaced to the LLM.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Input"},{"type":"null"}]},"response_filter":{"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.","anyOf":[{"$ref":"#/components/schemas/ResponseFilter"},{"type":"null"}]},"content_type":{"description":"Content type for the request body. Only applies to POST/PUT/PATCH requests.","type":"string","default":"application/json","enum":["application/json","application/x-www-form-urlencoded"],"title":"Content Type"},"auth_resolved_params":{"description":"URL placeholders resolved from the auth connection (e.g. secrets injected via UrlSecretAuthConnection) rather than from path_params_schema.","type":"array","items":{"type":"string"},"title":"Auth Resolved Params","uniqueItems":true},"auth_connection":{"description":"Optional auth connection to use for authentication with this webhook","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"}},"example":{"method":"GET","path_params_schema":{"agent_id":{"type":"string"}},"query_params_schema":{"param1":{"type":"string"}},"request_body_schema":{"param1":{"type":"string"}},"request_headers":{"Authorization":"Bearer {api_key}"},"url":"https://example.com/agents/{agent_id}"},"required":["url"],"title":"WebhookToolApiSchemaConfig"},"WebhookToolApiSchemaConfig-Output":{"type":"object","properties":{"request_headers":{"description":"Headers that should be included in the request","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAISecretLocator"},{"$ref":"#/components/schemas/ConvAIDynamicVariable"},{"$ref":"#/components/schemas/ConvAIEnvVarLocator"}]},"title":"Request Headers"},"url":{"description":"The URL that the webhook will be sent to. May include path parameters, e.g. https://example.com/agents/{agent_id}","type":"string","title":"Url"},"method":{"description":"The HTTP method to use for the webhook","type":"string","default":"GET","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"Method"},"path_params_schema":{"description":"Schema for path parameters, if any. The keys should match the placeholders in the URL.","type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"title":"Path Params Schema"},"query_params_schema":{"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","anyOf":[{"$ref":"#/components/schemas/QueryParamsJsonSchema"},{"type":"null"}]},"request_body_schema":{"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","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"response_body_schema":{"description":"Schema describing the expected response body structure. For documentation only; not surfaced to the LLM.","anyOf":[{"$ref":"#/components/schemas/ObjectJsonSchemaProperty-Output"},{"type":"null"}]},"response_filter":{"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.","anyOf":[{"$ref":"#/components/schemas/ResponseFilter"},{"type":"null"}]},"content_type":{"description":"Content type for the request body. Only applies to POST/PUT/PATCH requests.","type":"string","default":"application/json","enum":["application/json","application/x-www-form-urlencoded"],"title":"Content Type"},"auth_resolved_params":{"description":"URL placeholders resolved from the auth connection (e.g. secrets injected via UrlSecretAuthConnection) rather than from path_params_schema.","type":"array","items":{"type":"string"},"title":"Auth Resolved Params"},"auth_connection":{"description":"Optional auth connection to use for authentication with this webhook","anyOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"},{"type":"null"}],"title":"Auth Connection"}},"example":{"method":"GET","path_params_schema":{"agent_id":{"type":"string"}},"query_params_schema":{"param1":{"type":"string"}},"request_body_schema":{"param1":{"type":"string"}},"request_headers":{"Authorization":"Bearer {api_key}"},"url":"https://example.com/agents/{agent_id}"},"required":["url"],"title":"WebhookToolApiSchemaConfig"},"WebhookToolConfig-Input":{"description":"A webhook tool is a tool that calls an external webhook from our server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"webhook","const":"webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"api_schema":{"description":"The schema for the outgoing webhoook, including parameters and URL specification","$ref":"#/components/schemas/WebhookToolApiSchemaConfig-Input"}},"example":{"response_timeout_secs":20,"type":"webhook"},"required":["name","description","api_schema"],"title":"WebhookToolConfig"},"WebhookToolConfig-Output":{"description":"A webhook tool is a tool that calls an external webhook from our server","type":"object","properties":{"type":{"description":"The type of tool","type":"string","default":"webhook","const":"webhook","title":"Type"},"name":{"type":"string","minLength":0,"pattern":"^[a-zA-Z0-9_-]{1,64}$","title":"Name"},"description":{"description":"Description of when the tool should be used and what it does.","type":"string","minLength":0,"title":"Description"},"response_timeout_secs":{"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 120 seconds (inclusive).","type":"integer","default":20,"maximum":120,"minimum":5,"title":"Response Timeout Secs"},"disable_interruptions":{"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","type":"boolean","default":false,"deprecated":true,"title":"Disable Interruptions"},"interruption_mode":{"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.","default":"allow","$ref":"#/components/schemas/ToolInterruptionMode"},"force_pre_tool_speech":{"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","type":"boolean","default":false,"deprecated":true,"title":"Force Pre Tool Speech"},"pre_tool_speech":{"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.","default":"auto","$ref":"#/components/schemas/PreToolSpeechMode"},"assignments":{"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables","type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"title":"Assignments"},"tool_call_sound":{"description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played.","anyOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"null"}],"x-convai-client-override":true},"tool_call_sound_behavior":{"description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call.","default":"auto","$ref":"#/components/schemas/ToolCallSoundBehavior"},"tool_error_handling_mode":{"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.","default":"auto","$ref":"#/components/schemas/ToolErrorHandlingMode"},"dynamic_variables":{"description":"Configuration for dynamic variables","$ref":"#/components/schemas/DynamicVariablesConfig"},"execution_mode":{"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.","default":"immediate","$ref":"#/components/schemas/ToolExecutionMode"},"api_schema":{"description":"The schema for the outgoing webhoook, including parameters and URL specification","$ref":"#/components/schemas/WebhookToolApiSchemaConfig-Output"}},"example":{"response_timeout_secs":20,"type":"webhook"},"required":["name","description","api_schema"],"title":"WebhookToolConfig"},"WebhookTranscriptFormat":{"type":"string","default":"json","enum":["json","opentelemetry"],"title":"WebhookTranscriptFormat"},"WebhookUsageType":{"type":"string","enum":["ConvAI Agent Settings","ConvAI Settings","Voice Library Removal Notices","Speech to Text","Agent QA Evaluations","ConvAI Alerting","Flows"],"title":"WebhookUsageType"},"WhatsAppAuthResponse":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","default":"whatsapp_auth","const":"whatsapp_auth","title":"Auth Type"},"provider":{"type":"string","default":"whatsapp","const":"whatsapp","title":"Provider"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"id":{"type":"string","title":"Id"},"used_by":{"anyOf":[{"$ref":"#/components/schemas/AuthConnectionDependencies"},{"type":"null"}]},"status":{"default":"active","$ref":"#/components/schemas/AuthConnectionStatus"},"status_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Detail"},"status_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Updated At"}},"required":["name","phone_number_id","id"],"title":"WhatsAppAuthResponse"},"WhatsAppConversationInfo":{"type":"object","properties":{"direction":{"type":"string","default":"unknown","enum":["inbound","outbound","unknown"],"title":"Direction"},"whatsapp_phone_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whatsapp Phone Number Id"},"whatsapp_user_id":{"type":"string","title":"Whatsapp User Id"},"awaiting_first_user_message":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Awaiting First User Message"}},"required":["whatsapp_user_id"],"title":"WhatsAppConversationInfo"},"WhatsAppOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"required":["success","message","conversation_id"],"title":"WhatsAppOutboundCallResponse"},"WhatsAppOutboundMessageResponse":{"type":"object","properties":{"conversation_id":{"type":"string","title":"Conversation Id"}},"required":["conversation_id"],"title":"WhatsAppOutboundMessageResponse"},"WhatsAppTemplateBodyComponentParams":{"type":"object","properties":{"type":{"type":"string","default":"body","const":"body","title":"Type"},"parameters":{"items":{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"},"title":"Parameters","type":"array"}},"required":["parameters"],"title":"WhatsAppTemplateBodyComponentParams"},"WhatsAppTemplateButtonComponentParams":{"type":"object","properties":{"type":{"type":"string","default":"button","const":"button","title":"Type"},"parameters":{"items":{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"},"title":"Parameters","type":"array"},"index":{"type":"integer","title":"Index"},"sub_type":{"type":"string","title":"Sub Type"}},"required":["parameters","index","sub_type"],"title":"WhatsAppTemplateButtonComponentParams"},"WhatsAppTemplateDocumentParam":{"type":"object","properties":{"type":{"type":"string","default":"document","const":"document","title":"Type"},"document":{"$ref":"#/components/schemas/WhatsAppTemplateDocumentParamDetails"}},"required":["document"],"title":"WhatsAppTemplateDocumentParam"},"WhatsAppTemplateDocumentParamDetails":{"type":"object","properties":{"link":{"type":"string","title":"Link"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"required":["link"],"title":"WhatsAppTemplateDocumentParamDetails"},"WhatsAppTemplateHeaderComponentParams":{"type":"object","properties":{"type":{"type":"string","default":"header","const":"header","title":"Type"},"parameters":{"items":{"oneOf":[{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"},{"$ref":"#/components/schemas/WhatsAppTemplateImageParam"},{"$ref":"#/components/schemas/WhatsAppTemplateDocumentParam"},{"$ref":"#/components/schemas/WhatsAppTemplateLocationParam"}],"discriminator":{"propertyName":"type","mapping":{"document":"#/components/schemas/WhatsAppTemplateDocumentParam","image":"#/components/schemas/WhatsAppTemplateImageParam","location":"#/components/schemas/WhatsAppTemplateLocationParam","text":"#/components/schemas/WhatsAppTemplateTextParam"}}},"title":"Parameters","type":"array"}},"required":["parameters"],"title":"WhatsAppTemplateHeaderComponentParams"},"WhatsAppTemplateImageParam":{"type":"object","properties":{"type":{"type":"string","default":"image","const":"image","title":"Type"},"image":{"$ref":"#/components/schemas/WhatsAppTemplateImageParamDetails"}},"required":["image"],"title":"WhatsAppTemplateImageParam"},"WhatsAppTemplateImageParamDetails":{"type":"object","properties":{"link":{"type":"string","title":"Link"}},"required":["link"],"title":"WhatsAppTemplateImageParamDetails"},"WhatsAppTemplateLocationParam":{"type":"object","properties":{"type":{"type":"string","default":"location","const":"location","title":"Type"},"location":{"$ref":"#/components/schemas/WhatsAppTemplateLocationParamDetails"}},"required":["location"],"title":"WhatsAppTemplateLocationParam"},"WhatsAppTemplateLocationParamDetails":{"type":"object","properties":{"latitude":{"type":"string","title":"Latitude"},"longitude":{"type":"string","title":"Longitude"},"name":{"type":"string","title":"Name"},"address":{"type":"string","title":"Address"}},"required":["latitude","longitude","name","address"],"title":"WhatsAppTemplateLocationParamDetails"},"WhatsAppTemplateTextParam":{"type":"object","properties":{"parameter_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter Name"},"type":{"type":"string","default":"text","const":"text","title":"Type"},"text":{"type":"string","title":"Text"}},"required":["text"],"title":"WhatsAppTemplateTextParam"},"WidgetConfig-Input":{"type":"object","properties":{"variant":{"description":"The variant of the widget","default":"full","$ref":"#/components/schemas/EmbedVariant"},"placement":{"description":"The placement of the widget on the screen","default":"bottom-right","$ref":"#/components/schemas/WidgetPlacement"},"expandable":{"description":"Whether the widget is expandable","default":"never","$ref":"#/components/schemas/WidgetExpandable"},"avatar":{"description":"The avatar of the widget","anyOf":[{"$ref":"#/components/schemas/OrbAvatar"},{"$ref":"#/components/schemas/URLAvatar"},{"$ref":"#/components/schemas/ImageAvatar"}],"title":"Avatar"},"feedback_mode":{"description":"The feedback mode of the widget","default":"none","$ref":"#/components/schemas/WidgetFeedbackMode"},"end_feedback":{"description":"Configuration for feedback collected at the end of the conversation","anyOf":[{"$ref":"#/components/schemas/WidgetEndFeedbackConfig"},{"type":"null"}]},"bg_color":{"description":"The background color of the widget","type":"string","default":"#ffffff","title":"Bg Color"},"text_color":{"description":"The text color of the widget","type":"string","default":"#000000","title":"Text Color"},"btn_color":{"description":"The button color of the widget","type":"string","default":"#000000","title":"Btn Color"},"btn_text_color":{"description":"The button text color of the widget","type":"string","default":"#ffffff","title":"Btn Text Color"},"border_color":{"description":"The border color of the widget","type":"string","default":"#e1e1e1","title":"Border Color"},"focus_color":{"description":"The focus color of the widget","type":"string","default":"#000000","title":"Focus Color"},"border_radius":{"description":"The border radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Border Radius"},"btn_radius":{"description":"The button radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Btn Radius"},"action_text":{"description":"The action text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Text"},"start_call_text":{"description":"The start call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call Text"},"end_call_text":{"description":"The end call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call Text"},"expand_text":{"description":"The expand text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand Text"},"listening_text":{"description":"The text to display when the agent is listening","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Text"},"speaking_text":{"description":"The text to display when the agent is speaking","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Text"},"shareable_page_text":{"description":"The text to display when sharing","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Page Text"},"shareable_page_show_terms":{"description":"Whether to show terms and conditions on the shareable page","type":"boolean","default":true,"title":"Shareable Page Show Terms"},"terms_text":{"description":"The text to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"show_avatar_when_collapsed":{"description":"Whether to show the avatar when the widget is collapsed","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Avatar When Collapsed"},"disable_banner":{"description":"Whether to disable the banner","type":"boolean","default":false,"title":"Disable Banner"},"override_link":{"description":"The override link for the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Link"},"markdown_link_allowed_hosts":{"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed.","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Markdown Link Allowed Hosts"},"markdown_link_include_www":{"description":"Whether to automatically include www. variants of allowed hosts","type":"boolean","default":true,"title":"Markdown Link Include Www"},"markdown_link_allow_http":{"description":"Whether to allow http:// in addition to https:// for allowed hosts","type":"boolean","default":true,"title":"Markdown Link Allow Http"},"mic_muting_enabled":{"description":"Whether to enable mic muting","type":"boolean","default":false,"title":"Mic Muting Enabled"},"transcript_enabled":{"description":"Whether the widget should show the conversation transcript as it goes on","type":"boolean","default":false,"title":"Transcript Enabled"},"text_input_enabled":{"description":"Whether the user should be able to send text messages","type":"boolean","default":true,"title":"Text Input Enabled"},"conversation_mode_toggle_enabled":{"description":"Whether to enable the conversation mode toggle in the widget","type":"boolean","default":false,"title":"Conversation Mode Toggle Enabled"},"default_expanded":{"description":"Whether the widget should be expanded by default","type":"boolean","default":false,"title":"Default Expanded"},"always_expanded":{"description":"Whether the widget should always be expanded","type":"boolean","default":false,"title":"Always Expanded"},"dismissible":{"description":"Whether the widget can be dismissed by the user","type":"boolean","default":false,"title":"Dismissible"},"show_agent_status":{"description":"Whether to show agent working/done/error status during tool use","type":"boolean","default":false,"title":"Show Agent Status"},"show_conversation_id":{"description":"Whether to show the conversation ID after disconnection.","type":"boolean","default":true,"title":"Show Conversation Id"},"strip_audio_tags":{"description":"Whether to strip audio markup from messages.","type":"boolean","default":true,"title":"Strip Audio Tags"},"syntax_highlight_theme":{"description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set.","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Syntax Highlight Theme"},"text_contents":{"description":"Text contents of the widget","$ref":"#/components/schemas/WidgetTextContents"},"styles":{"description":"Styles for the widget","$ref":"#/components/schemas/WidgetStyles"},"language_selector":{"description":"Whether to show the language selector","type":"boolean","default":false,"title":"Language Selector"},"supports_text_only":{"description":"Whether the widget can switch to text only mode","type":"boolean","default":true,"title":"Supports Text Only"},"custom_avatar_path":{"description":"The custom avatar path","anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Avatar Path"},"language_presets":{"description":"Language presets for the widget","type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePreset"},"title":"Language Presets"}},"example":{"custom_avatar_path":"https://example.com/avatar.png","language_selector":false},"title":"WidgetConfig","x-fern-type-name":"WidgetConfig"},"WidgetConfig-Output":{"type":"object","properties":{"variant":{"description":"The variant of the widget","default":"full","$ref":"#/components/schemas/EmbedVariant"},"placement":{"description":"The placement of the widget on the screen","default":"bottom-right","$ref":"#/components/schemas/WidgetPlacement"},"expandable":{"description":"Whether the widget is expandable","default":"never","$ref":"#/components/schemas/WidgetExpandable"},"avatar":{"description":"The avatar of the widget","anyOf":[{"$ref":"#/components/schemas/OrbAvatar"},{"$ref":"#/components/schemas/URLAvatar"},{"$ref":"#/components/schemas/ImageAvatar"}],"title":"Avatar"},"feedback_mode":{"description":"The feedback mode of the widget","default":"none","$ref":"#/components/schemas/WidgetFeedbackMode"},"end_feedback":{"description":"Configuration for feedback collected at the end of the conversation","anyOf":[{"$ref":"#/components/schemas/WidgetEndFeedbackConfig"},{"type":"null"}]},"bg_color":{"description":"The background color of the widget","type":"string","default":"#ffffff","title":"Bg Color"},"text_color":{"description":"The text color of the widget","type":"string","default":"#000000","title":"Text Color"},"btn_color":{"description":"The button color of the widget","type":"string","default":"#000000","title":"Btn Color"},"btn_text_color":{"description":"The button text color of the widget","type":"string","default":"#ffffff","title":"Btn Text Color"},"border_color":{"description":"The border color of the widget","type":"string","default":"#e1e1e1","title":"Border Color"},"focus_color":{"description":"The focus color of the widget","type":"string","default":"#000000","title":"Focus Color"},"border_radius":{"description":"The border radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Border Radius"},"btn_radius":{"description":"The button radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Btn Radius"},"action_text":{"description":"The action text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Text"},"start_call_text":{"description":"The start call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call Text"},"end_call_text":{"description":"The end call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call Text"},"expand_text":{"description":"The expand text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand Text"},"listening_text":{"description":"The text to display when the agent is listening","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Text"},"speaking_text":{"description":"The text to display when the agent is speaking","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Text"},"shareable_page_text":{"description":"The text to display when sharing","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Page Text"},"shareable_page_show_terms":{"description":"Whether to show terms and conditions on the shareable page","type":"boolean","default":true,"title":"Shareable Page Show Terms"},"terms_text":{"description":"The text to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"show_avatar_when_collapsed":{"description":"Whether to show the avatar when the widget is collapsed","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Avatar When Collapsed"},"disable_banner":{"description":"Whether to disable the banner","type":"boolean","default":false,"title":"Disable Banner"},"override_link":{"description":"The override link for the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Link"},"markdown_link_allowed_hosts":{"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed.","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Markdown Link Allowed Hosts"},"markdown_link_include_www":{"description":"Whether to automatically include www. variants of allowed hosts","type":"boolean","default":true,"title":"Markdown Link Include Www"},"markdown_link_allow_http":{"description":"Whether to allow http:// in addition to https:// for allowed hosts","type":"boolean","default":true,"title":"Markdown Link Allow Http"},"mic_muting_enabled":{"description":"Whether to enable mic muting","type":"boolean","default":false,"title":"Mic Muting Enabled"},"transcript_enabled":{"description":"Whether the widget should show the conversation transcript as it goes on","type":"boolean","default":false,"title":"Transcript Enabled"},"text_input_enabled":{"description":"Whether the user should be able to send text messages","type":"boolean","default":true,"title":"Text Input Enabled"},"conversation_mode_toggle_enabled":{"description":"Whether to enable the conversation mode toggle in the widget","type":"boolean","default":false,"title":"Conversation Mode Toggle Enabled"},"default_expanded":{"description":"Whether the widget should be expanded by default","type":"boolean","default":false,"title":"Default Expanded"},"always_expanded":{"description":"Whether the widget should always be expanded","type":"boolean","default":false,"title":"Always Expanded"},"dismissible":{"description":"Whether the widget can be dismissed by the user","type":"boolean","default":false,"title":"Dismissible"},"show_agent_status":{"description":"Whether to show agent working/done/error status during tool use","type":"boolean","default":false,"title":"Show Agent Status"},"show_conversation_id":{"description":"Whether to show the conversation ID after disconnection.","type":"boolean","default":true,"title":"Show Conversation Id"},"strip_audio_tags":{"description":"Whether to strip audio markup from messages.","type":"boolean","default":true,"title":"Strip Audio Tags"},"syntax_highlight_theme":{"description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set.","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Syntax Highlight Theme"},"text_contents":{"description":"Text contents of the widget","$ref":"#/components/schemas/WidgetTextContents"},"styles":{"description":"Styles for the widget","$ref":"#/components/schemas/WidgetStyles"},"language_selector":{"description":"Whether to show the language selector","type":"boolean","default":false,"title":"Language Selector"},"supports_text_only":{"description":"Whether the widget can switch to text only mode","type":"boolean","default":true,"title":"Supports Text Only"},"custom_avatar_path":{"description":"The custom avatar path","anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Avatar Path"},"language_presets":{"description":"Language presets for the widget","type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePreset"},"title":"Language Presets"}},"example":{"custom_avatar_path":"https://example.com/avatar.png","language_selector":false},"title":"WidgetConfig","x-fern-type-name":"WidgetConfig"},"WidgetConfigResponseModel":{"type":"object","properties":{"variant":{"description":"The variant of the widget","default":"full","$ref":"#/components/schemas/EmbedVariant"},"placement":{"description":"The placement of the widget on the screen","default":"bottom-right","$ref":"#/components/schemas/WidgetPlacement"},"expandable":{"description":"Whether the widget is expandable","default":"never","$ref":"#/components/schemas/WidgetExpandable"},"avatar":{"description":"The avatar of the widget","anyOf":[{"$ref":"#/components/schemas/OrbAvatar"},{"$ref":"#/components/schemas/URLAvatar"},{"$ref":"#/components/schemas/ImageAvatar"}],"title":"Avatar"},"feedback_mode":{"description":"The feedback mode of the widget","default":"none","$ref":"#/components/schemas/WidgetFeedbackMode"},"end_feedback":{"description":"Configuration for feedback collected at the end of the conversation","anyOf":[{"$ref":"#/components/schemas/WidgetEndFeedbackConfig"},{"type":"null"}]},"bg_color":{"description":"The background color of the widget","type":"string","default":"#ffffff","title":"Bg Color"},"text_color":{"description":"The text color of the widget","type":"string","default":"#000000","title":"Text Color"},"btn_color":{"description":"The button color of the widget","type":"string","default":"#000000","title":"Btn Color"},"btn_text_color":{"description":"The button text color of the widget","type":"string","default":"#ffffff","title":"Btn Text Color"},"border_color":{"description":"The border color of the widget","type":"string","default":"#e1e1e1","title":"Border Color"},"focus_color":{"description":"The focus color of the widget","type":"string","default":"#000000","title":"Focus Color"},"border_radius":{"description":"The border radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Border Radius"},"btn_radius":{"description":"The button radius of the widget","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Btn Radius"},"action_text":{"description":"The action text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Text"},"start_call_text":{"description":"The start call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call Text"},"end_call_text":{"description":"The end call text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call Text"},"expand_text":{"description":"The expand text of the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand Text"},"listening_text":{"description":"The text to display when the agent is listening","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Text"},"speaking_text":{"description":"The text to display when the agent is speaking","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Text"},"shareable_page_text":{"description":"The text to display when sharing","anyOf":[{"type":"string"},{"type":"null"}],"title":"Shareable Page Text"},"shareable_page_show_terms":{"description":"Whether to show terms and conditions on the shareable page","type":"boolean","default":true,"title":"Shareable Page Show Terms"},"terms_text":{"description":"The text to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"show_avatar_when_collapsed":{"description":"Whether to show the avatar when the widget is collapsed","default":false,"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Avatar When Collapsed"},"disable_banner":{"description":"Whether to disable the banner","type":"boolean","default":false,"title":"Disable Banner"},"override_link":{"description":"The override link for the widget","anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Link"},"markdown_link_allowed_hosts":{"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed.","type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"title":"Markdown Link Allowed Hosts"},"markdown_link_include_www":{"description":"Whether to automatically include www. variants of allowed hosts","type":"boolean","default":true,"title":"Markdown Link Include Www"},"markdown_link_allow_http":{"description":"Whether to allow http:// in addition to https:// for allowed hosts","type":"boolean","default":true,"title":"Markdown Link Allow Http"},"mic_muting_enabled":{"description":"Whether to enable mic muting","type":"boolean","default":false,"title":"Mic Muting Enabled"},"transcript_enabled":{"description":"Whether the widget should show the conversation transcript as it goes on","type":"boolean","default":false,"title":"Transcript Enabled"},"text_input_enabled":{"description":"Whether the user should be able to send text messages","type":"boolean","default":true,"title":"Text Input Enabled"},"conversation_mode_toggle_enabled":{"description":"Whether to enable the conversation mode toggle in the widget","type":"boolean","default":false,"title":"Conversation Mode Toggle Enabled"},"default_expanded":{"description":"Whether the widget should be expanded by default","type":"boolean","default":false,"title":"Default Expanded"},"always_expanded":{"description":"Whether the widget should always be expanded","type":"boolean","default":false,"title":"Always Expanded"},"dismissible":{"description":"Whether the widget can be dismissed by the user","type":"boolean","default":false,"title":"Dismissible"},"show_agent_status":{"description":"Whether to show agent working/done/error status during tool use","type":"boolean","default":false,"title":"Show Agent Status"},"show_conversation_id":{"description":"Whether to show the conversation ID after disconnection.","type":"boolean","default":true,"title":"Show Conversation Id"},"strip_audio_tags":{"description":"Whether to strip audio markup from messages.","type":"boolean","default":true,"title":"Strip Audio Tags"},"syntax_highlight_theme":{"description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set.","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}],"title":"Syntax Highlight Theme"},"text_contents":{"description":"Text contents of the widget","$ref":"#/components/schemas/WidgetTextContents"},"styles":{"description":"Styles for the widget","$ref":"#/components/schemas/WidgetStyles"},"language":{"type":"string","title":"Language"},"supported_language_overrides":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Supported Language Overrides"},"language_presets":{"description":"Language presets for the widget","type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePresetResponse"},"title":"Language Presets"},"text_only":{"description":"Whether the agent uses text-only mode","type":"boolean","default":false,"title":"Text Only"},"supports_text_only":{"description":"Whether the agent can be switched to text-only mode","type":"boolean","default":false,"title":"Supports Text Only"},"first_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message"},"use_rtc":{"description":"Whether to use WebRTC for conversation connections","anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Rtc"},"file_input_config":{"description":"Configuration for file upload in the widget","$ref":"#/components/schemas/FileInputConfig"}},"example":{"file_input_config":{"enabled":false,"max_files_per_conversation":10},"first_message":"Hello! How can I help you today?","language":"en","language_presets":{},"supported_language_overrides":["es","fr"],"supports_text_only":true,"text_only":false,"use_rtc":false},"required":["language"],"title":"WidgetConfigResponseModel","x-fern-type-name":"WidgetConfigResponse"},"WidgetEndFeedbackConfig":{"type":"object","properties":{"type":{"description":"The type of feedback to collect at the end of the conversation","default":"rating","$ref":"#/components/schemas/WidgetEndFeedbackType"}},"title":"WidgetEndFeedbackConfig"},"WidgetEndFeedbackType":{"type":"string","default":"rating","enum":["rating"],"title":"WidgetEndFeedbackType"},"WidgetExpandable":{"type":"string","default":"never","enum":["never","mobile","desktop","always"],"title":"WidgetExpandable"},"WidgetFeedbackMode":{"type":"string","default":"none","enum":["none","during","end"],"title":"WidgetFeedbackMode"},"WidgetLanguagePreset":{"type":"object","properties":{"text_contents":{"description":"The text contents for the selected language","anyOf":[{"$ref":"#/components/schemas/WidgetTextContents"},{"type":"null"}]},"text_contents_translation":{"description":"The translation cache for the text contents","anyOf":[{"$ref":"#/components/schemas/WidgetTextContentsTranslation"},{"type":"null"}]},"terms_text":{"description":"The text to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"},"terms_translation":{"description":"The translation cache for the terms","anyOf":[{"$ref":"#/components/schemas/WidgetTermsTranslation"},{"type":"null"}]}},"title":"WidgetLanguagePreset"},"WidgetLanguagePresetResponse":{"type":"object","properties":{"first_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Message"},"text_contents":{"description":"The text contents for the selected language","anyOf":[{"$ref":"#/components/schemas/WidgetTextContents"},{"type":"null"}]},"terms_text":{"description":"The text to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Text"},"terms_html":{"description":"The HTML to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Html"},"terms_key":{"description":"The key to display for terms and conditions in this language","anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Key"}},"title":"WidgetLanguagePresetResponse"},"WidgetPlacement":{"type":"string","default":"bottom-right","enum":["top-left","top","top-right","bottom-left","bottom","bottom-right"],"title":"WidgetPlacement"},"WidgetStyles":{"type":"object","properties":{"base":{"description":"The base background color.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base"},"base_hover":{"description":"The color of the base background when hovered.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Hover"},"base_active":{"description":"The color of the base background when active (clicked).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Active"},"base_border":{"description":"The color of the border against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Border"},"base_subtle":{"description":"The color of subtle text against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Subtle"},"base_primary":{"description":"The color of primary text against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Primary"},"base_error":{"description":"The color of error text against the base background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Error"},"accent":{"description":"The accent background color.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"accent_hover":{"description":"The color of the accent background when hovered.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Hover"},"accent_active":{"description":"The color of the accent background when active (clicked).","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Active"},"accent_border":{"description":"The color of the border against the accent background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Border"},"accent_subtle":{"description":"The color of subtle text against the accent background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Subtle"},"accent_primary":{"description":"The color of primary text against the accent background.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Primary"},"overlay_padding":{"description":"The padding around the edges of the viewport.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Overlay Padding"},"button_radius":{"description":"The radius of the buttons.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Button Radius"},"input_radius":{"description":"The radius of the input fields.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Radius"},"bubble_radius":{"description":"The radius of the chat bubbles.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Bubble Radius"},"sheet_radius":{"description":"The default radius of sheets.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Sheet Radius"},"compact_sheet_radius":{"description":"The radius of the sheet in compact mode.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Compact Sheet Radius"},"dropdown_sheet_radius":{"description":"The radius of the dropdown sheet.","anyOf":[{"type":"number"},{"type":"null"}],"title":"Dropdown Sheet Radius"}},"title":"WidgetStyles"},"WidgetTermsTranslation":{"type":"object","properties":{"source_hash":{"type":"string","title":"Source Hash"},"text":{"type":"string","title":"Text"}},"required":["source_hash","text"],"title":"WidgetTermsTranslation"},"WidgetTextContents":{"type":"object","properties":{"main_label":{"description":"Call to action displayed inside the compact and full variants.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Main Label"},"start_call":{"description":"Text and ARIA label for the start call button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Call"},"start_chat":{"description":"Text and ARIA label for the start chat button (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Chat"},"new_call":{"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.","anyOf":[{"type":"string"},{"type":"null"}],"title":"New Call"},"end_call":{"description":"Text and ARIA label for the end call button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"End Call"},"mute_microphone":{"description":"ARIA label for the mute microphone button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Mute Microphone"},"change_language":{"description":"ARIA label for the change language dropdown.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Change Language"},"collapse":{"description":"ARIA label for the collapse button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Collapse"},"expand":{"description":"ARIA label for the expand button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand"},"copied":{"description":"Text displayed when the user copies a value using the copy button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Copied"},"accept_terms":{"description":"Text and ARIA label for the accept terms button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept Terms"},"dismiss_terms":{"description":"Text and ARIA label for the cancel terms button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Dismiss Terms"},"listening_status":{"description":"Status displayed when the agent is listening.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Listening Status"},"speaking_status":{"description":"Status displayed when the agent is speaking.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaking Status"},"connecting_status":{"description":"Status displayed when the agent is connecting.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Connecting Status"},"chatting_status":{"description":"Status displayed when the agent is chatting (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Chatting Status"},"input_label":{"description":"ARIA label for the text message input.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Label"},"input_placeholder":{"description":"Placeholder text for the text message input.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Placeholder"},"input_placeholder_text_only":{"description":"Placeholder text for the text message input (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Placeholder Text Only"},"input_placeholder_new_conversation":{"description":"Placeholder text for the text message input when starting a new conversation (text only)","anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Placeholder New Conversation"},"user_ended_conversation":{"description":"Information message displayed when the user ends the conversation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"User Ended Conversation"},"agent_ended_conversation":{"description":"Information message displayed when the agent ends the conversation.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Ended Conversation"},"conversation_id":{"description":"Text label used next to the conversation ID.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"error_occurred":{"description":"Text label used when an error occurs.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Occurred"},"copy_id":{"description":"Text and ARIA label used for the copy ID button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Copy Id"},"initiate_feedback":{"description":"Text displayed to prompt the user for feedback.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Initiate Feedback"},"request_follow_up_feedback":{"description":"Text displayed to request additional feedback details.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Follow Up Feedback"},"thanks_for_feedback":{"description":"Text displayed to thank the user for providing feedback.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Thanks For Feedback"},"thanks_for_feedback_details":{"description":"Additional text displayed explaining the value of user feedback.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Thanks For Feedback Details"},"follow_up_feedback_placeholder":{"description":"Placeholder text for the follow-up feedback input field.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Follow Up Feedback Placeholder"},"submit":{"description":"Text and ARIA label for the submit button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Submit"},"go_back":{"description":"Text and ARIA label for the go back button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Go Back"},"send_message":{"description":"Text and ARIA label for the send message button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Send Message"},"text_mode":{"description":"Text and ARIA label for the switch to text mode button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Mode"},"voice_mode":{"description":"Text and ARIA label for the switch to voice mode button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Mode"},"switched_to_text_mode":{"description":"Toast notification displayed when switching to text mode.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Switched To Text Mode"},"switched_to_voice_mode":{"description":"Toast notification displayed when switching to voice mode.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Switched To Voice Mode"},"copy":{"description":"Text and ARIA label for the copy button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Copy"},"download":{"description":"Text and ARIA label for the download button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Download"},"wrap":{"description":"Text and ARIA label for the wrap toggle button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Wrap"},"agent_working":{"description":"Status text displayed when the agent is processing a tool call.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Working"},"agent_done":{"description":"Status text displayed when the agent finishes processing a tool call.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Done"},"agent_error":{"description":"Status text displayed when the agent encounters an error during a tool call.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Error"},"attach_file":{"description":"Text and ARIA label for the attach file button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Attach File"},"remove_file":{"description":"ARIA label for the remove file button.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Remove File"},"file_upload_error":{"description":"Error message displayed when a file fails to upload.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Upload Error"},"file_type_unsupported":{"description":"Error message displayed when an unsupported file type is selected. Followed by the list of accepted types.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Type Unsupported"},"file_too_large":{"description":"Error message displayed when a file exceeds the maximum size limit.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Too Large"},"file_limit_reached":{"description":"Error message displayed when the maximum number of files for a conversation is reached.","anyOf":[{"type":"string"},{"type":"null"}],"title":"File Limit Reached"},"typing_indicator":{"description":"Status text displayed while the agent is typing.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Typing Indicator"}},"title":"WidgetTextContents"},"WidgetTextContentsTranslation":{"type":"object","properties":{"source":{"description":"The source text each translated field was derived from","type":"object","additionalProperties":{"type":"string"},"title":"Source"},"text":{"description":"The last auto-translated output for each translated field","type":"object","additionalProperties":{"type":"string"},"title":"Text"}},"title":"WidgetTextContentsTranslation"},"WordTimestamp":{"type":"object","properties":{"word":{"type":"string","title":"Word"},"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"}},"required":["word","start_ms","end_ms"],"title":"WordTimestamp"},"WorkflowEdgeModel-Input":{"type":"object","properties":{"source":{"description":"ID of the source node.","type":"string","title":"Source"},"target":{"description":"ID of the target node.","type":"string","title":"Target"},"forward_condition":{"description":"Condition that must be met for the edge to be traversed in the forward direction (source to target).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Input","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Input","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Input","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Input","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Input","llm":"#/components/schemas/WorkflowLLMConditionModel-Input","result":"#/components/schemas/WorkflowResultConditionModel-Input","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Input"}}},{"type":"null"}],"title":"Forward Condition"},"backward_condition":{"description":"Condition that must be met for the edge to be traversed in the backward direction (target to source).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Input","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Input","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Input","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Input","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Input","llm":"#/components/schemas/WorkflowLLMConditionModel-Input","result":"#/components/schemas/WorkflowResultConditionModel-Input","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Input"}}},{"type":"null"}],"title":"Backward Condition"}},"required":["source","target"],"title":"WorkflowEdgeModel"},"WorkflowEdgeModel-Output":{"type":"object","properties":{"source":{"description":"ID of the source node.","type":"string","title":"Source"},"target":{"description":"ID of the target node.","type":"string","title":"Target"},"forward_condition":{"description":"Condition that must be met for the edge to be traversed in the forward direction (source to target).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Output","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Output","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Output","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Output","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Output","llm":"#/components/schemas/WorkflowLLMConditionModel-Output","result":"#/components/schemas/WorkflowResultConditionModel-Output","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Output"}}},{"type":"null"}],"title":"Forward Condition"},"backward_condition":{"description":"Condition that must be met for the edge to be traversed in the backward direction (target to source).","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WorkflowUnconditionalModel-Output","description":"Condition that is always true."},{"$ref":"#/components/schemas/WorkflowLLMConditionModel-Output","description":"Condition described using human language and evaluated by an LLM."},{"$ref":"#/components/schemas/WorkflowResultConditionModel-Output","description":"Condition based on the result of the last executed tool dispatch node."},{"$ref":"#/components/schemas/WorkflowExpressionConditionModel-Output","description":"Condition described using a deterministic expression."}],"discriminator":{"propertyName":"type","mapping":{"expression":"#/components/schemas/WorkflowExpressionConditionModel-Output","llm":"#/components/schemas/WorkflowLLMConditionModel-Output","result":"#/components/schemas/WorkflowResultConditionModel-Output","unconditional":"#/components/schemas/WorkflowUnconditionalModel-Output"}}},{"type":"null"}],"title":"Backward Condition"}},"required":["source","target","forward_condition","backward_condition"],"title":"WorkflowEdgeModel"},"WorkflowEndNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"end","const":"end","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"title":"WorkflowEndNodeModel"},"WorkflowEndNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"end","const":"end","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["type","position","edge_order"],"title":"WorkflowEndNodeModel"},"WorkflowExpressionConditionModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"expression","const":"expression","title":"Type"},"expression":{"description":"Expression to evaluate.","$ref":"#/components/schemas/ASTNode-Input"}},"required":["expression"],"title":"WorkflowExpressionConditionModel"},"WorkflowExpressionConditionModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"expression","const":"expression","title":"Type"},"expression":{"description":"Expression to evaluate.","$ref":"#/components/schemas/ASTNode-Output"}},"required":["label","type","expression"],"title":"WorkflowExpressionConditionModel"},"WorkflowFeaturesUsageCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"title":"Enabled"},"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"}},"title":"WorkflowFeaturesUsageCommonModel"},"WorkflowLLMConditionModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"condition":{"description":"Condition to evaluate","type":"string","examples":["User's last message contains a question about our pricing.","User provided their email address."],"title":"Condition"}},"required":["condition"],"title":"WorkflowLLMConditionModel"},"WorkflowLLMConditionModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"llm","const":"llm","title":"Type"},"condition":{"description":"Condition to evaluate","type":"string","examples":["User's last message contains a question about our pricing.","User provided their email address."],"title":"Condition"}},"required":["label","type","condition"],"title":"WorkflowLLMConditionModel"},"WorkflowOverrideAgentNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"override_agent","const":"override_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"conversation_config":{"description":"Configuration overrides applied while the subagent is conducting the conversation.","$ref":"#/components/schemas/ConversationalConfigAPIModelWorkflowOverride-Input"},"additional_prompt":{"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.","type":"string","title":"Additional Prompt"},"additional_knowledge_base":{"description":"Additional knowledge base documents that the subagent has access to. These will be used in addition to the main agent's documents.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Additional Knowledge Base"},"additional_tool_ids":{"description":"IDs of additional tools that the subagent has access to. These will be used in addition to the main agent's tools.","type":"array","items":{"type":"string"},"title":"Additional Tool Ids"},"label":{"description":"Human-readable label for the node used throughout the UI.","type":"string","title":"Label"},"entry_behavior":{"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.","default":"auto","$ref":"#/components/schemas/EntryBehavior"}},"required":["label"],"title":"WorkflowOverrideAgentNodeModel"},"WorkflowOverrideAgentNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"override_agent","const":"override_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"conversation_config":{"description":"Configuration overrides applied while the subagent is conducting the conversation.","$ref":"#/components/schemas/ConversationalConfigAPIModelWorkflowOverride-Output"},"additional_prompt":{"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.","type":"string","title":"Additional Prompt"},"additional_knowledge_base":{"description":"Additional knowledge base documents that the subagent has access to. These will be used in addition to the main agent's documents.","type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"title":"Additional Knowledge Base"},"additional_tool_ids":{"description":"IDs of additional tools that the subagent has access to. These will be used in addition to the main agent's tools.","type":"array","items":{"type":"string"},"title":"Additional Tool Ids"},"label":{"description":"Human-readable label for the node used throughout the UI.","type":"string","title":"Label"},"entry_behavior":{"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.","default":"auto","$ref":"#/components/schemas/EntryBehavior"}},"required":["type","position","edge_order","conversation_config","additional_prompt","additional_knowledge_base","additional_tool_ids","label","entry_behavior"],"title":"WorkflowOverrideAgentNodeModel"},"WorkflowPhoneNumberNodeModel-Input":{"type":"object","properties":{"custom_sip_headers":{"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/CustomSIPHeader"},{"$ref":"#/components/schemas/CustomSIPHeaderWithDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/CustomSIPHeaderWithDynamicVariable","static":"#/components/schemas/CustomSIPHeader"}}},"maxItems":20,"title":"Custom Sip Headers"},"transfer_destination":{"discriminator":{"propertyName":"type","mapping":{"phone":"#/components/schemas/PhoneNumberTransferDestination","phone_dynamic_variable":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination","sip_uri":"#/components/schemas/SIPUriTransferDestination","sip_uri_dynamic_variable":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}},"oneOf":[{"$ref":"#/components/schemas/PhoneNumberTransferDestination"},{"$ref":"#/components/schemas/SIPUriTransferDestination"},{"$ref":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination"},{"$ref":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}],"title":"Transfer Destination"},"transfer_type":{"default":"conference","$ref":"#/components/schemas/TransferTypeEnum"},"uui":{"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.","anyOf":[{"$ref":"#/components/schemas/UUITransferConfig"},{"type":"null"}]},"post_dial_digits":{"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.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/PostDialDigitsStatic"},{"$ref":"#/components/schemas/PostDialDigitsDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/PostDialDigitsDynamicVariable","static":"#/components/schemas/PostDialDigitsStatic"}}},{"type":"null"}],"title":"Post Dial Digits"},"type":{"type":"string","default":"phone_number","const":"phone_number","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["transfer_destination"],"title":"WorkflowPhoneNumberNodeModel"},"WorkflowPhoneNumberNodeModel-Output":{"type":"object","properties":{"custom_sip_headers":{"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/CustomSIPHeader"},{"$ref":"#/components/schemas/CustomSIPHeaderWithDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/CustomSIPHeaderWithDynamicVariable","static":"#/components/schemas/CustomSIPHeader"}}},"maxItems":20,"title":"Custom Sip Headers"},"transfer_destination":{"discriminator":{"propertyName":"type","mapping":{"phone":"#/components/schemas/PhoneNumberTransferDestination","phone_dynamic_variable":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination","sip_uri":"#/components/schemas/SIPUriTransferDestination","sip_uri_dynamic_variable":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}},"oneOf":[{"$ref":"#/components/schemas/PhoneNumberTransferDestination"},{"$ref":"#/components/schemas/SIPUriTransferDestination"},{"$ref":"#/components/schemas/PhoneNumberDynamicVariableTransferDestination"},{"$ref":"#/components/schemas/SIPUriDynamicVariableTransferDestination"}],"title":"Transfer Destination"},"transfer_type":{"default":"conference","$ref":"#/components/schemas/TransferTypeEnum"},"uui":{"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.","anyOf":[{"$ref":"#/components/schemas/UUITransferConfig"},{"type":"null"}]},"post_dial_digits":{"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.","anyOf":[{"oneOf":[{"$ref":"#/components/schemas/PostDialDigitsStatic"},{"$ref":"#/components/schemas/PostDialDigitsDynamicVariable"}],"discriminator":{"propertyName":"type","mapping":{"dynamic":"#/components/schemas/PostDialDigitsDynamicVariable","static":"#/components/schemas/PostDialDigitsStatic"}}},{"type":"null"}],"title":"Post Dial Digits"},"type":{"type":"string","default":"phone_number","const":"phone_number","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["custom_sip_headers","transfer_destination","transfer_type","uui","post_dial_digits","type","position","edge_order"],"title":"WorkflowPhoneNumberNodeModel"},"WorkflowResultConditionModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"result","const":"result","title":"Type"},"successful":{"description":"Whether all tools in the previously executed tool node were executed successfully.","type":"boolean","title":"Successful"}},"required":["successful"],"title":"WorkflowResultConditionModel"},"WorkflowResultConditionModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"result","const":"result","title":"Type"},"successful":{"description":"Whether all tools in the previously executed tool node were executed successfully.","type":"boolean","title":"Successful"}},"required":["label","type","successful"],"title":"WorkflowResultConditionModel"},"WorkflowStandaloneAgentNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"standalone_agent","const":"standalone_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"agent_id":{"description":"The ID of the agent to transfer the conversation to. None means transfer within the current agent.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"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.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Node Id"},"delay_ms":{"description":"Artificial delay in milliseconds applied before transferring the conversation.","type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"description":"Optional message sent to the user before the transfer is initiated.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"description":"Whether to enable the transferred agent to send its configured first message after the transfer.","type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"title":"WorkflowStandaloneAgentNodeModel"},"WorkflowStandaloneAgentNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"standalone_agent","const":"standalone_agent","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"agent_id":{"description":"The ID of the agent to transfer the conversation to. None means transfer within the current agent.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"node_id":{"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.","anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Node Id"},"delay_ms":{"description":"Artificial delay in milliseconds applied before transferring the conversation.","type":"integer","default":0,"title":"Delay Ms"},"transfer_message":{"description":"Optional message sent to the user before the transfer is initiated.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Message"},"enable_transferred_agent_first_message":{"description":"Whether to enable the transferred agent to send its configured first message after the transfer.","type":"boolean","default":false,"title":"Enable Transferred Agent First Message"},"preserve_client_tts_overrides":{"description":"Defines whether TTS client overrides should be carried over to the transferred agent.","type":"boolean","default":false,"title":"Preserve Client Tts Overrides"}},"required":["type","position","edge_order","agent_id","node_id","delay_ms","transfer_message","enable_transferred_agent_first_message","preserve_client_tts_overrides"],"title":"WorkflowStandaloneAgentNodeModel"},"WorkflowStartNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"start","const":"start","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"title":"WorkflowStartNodeModel"},"WorkflowStartNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"start","const":"start","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"}},"required":["type","position","edge_order"],"title":"WorkflowStartNodeModel"},"WorkflowToolEdgeStepModel":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"edge","const":"edge","title":"Type"},"edge_id":{"type":"string","title":"Edge Id"},"target_node_id":{"type":"string","title":"Target Node Id"}},"required":["step_latency_secs","edge_id","target_node_id"],"title":"WorkflowToolEdgeStepModel"},"WorkflowToolLocator":{"type":"object","properties":{"tool_id":{"type":"string","title":"Tool Id"}},"required":["tool_id"],"title":"WorkflowToolLocator"},"WorkflowToolMaxIterationsExceededStepModel":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"max_iterations_exceeded","const":"max_iterations_exceeded","title":"Type"},"max_iterations":{"type":"integer","title":"Max Iterations"}},"required":["step_latency_secs","max_iterations"],"title":"WorkflowToolMaxIterationsExceededStepModel"},"WorkflowToolNestedToolsStepModel-Input":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"nested_tools","const":"nested_tools","title":"Type"},"node_id":{"type":"string","title":"Node Id"},"requests":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Input"},"title":"Requests"},"results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Input"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Input"}]},"title":"Results"},"is_successful":{"type":"boolean","title":"Is Successful"}},"required":["step_latency_secs","node_id","requests","results","is_successful"],"title":"WorkflowToolNestedToolsStepModel"},"WorkflowToolNestedToolsStepModel-Output":{"type":"object","properties":{"step_latency_secs":{"type":"number","title":"Step Latency Secs"},"type":{"type":"string","default":"nested_tools","const":"nested_tools","title":"Type"},"node_id":{"type":"string","title":"Node Id"},"requests":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModel-Output"},"title":"Requests"},"results":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModel-Output"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModel-Output"}]},"title":"Results"},"is_successful":{"type":"boolean","title":"Is Successful"}},"required":["step_latency_secs","node_id","requests","results","is_successful"],"title":"WorkflowToolNestedToolsStepModel"},"WorkflowToolNodeModel-Input":{"type":"object","properties":{"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Input"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"tools":{"description":"List of tools to execute in parallel. The entire node is considered successful if all tools are executed successfully.","type":"array","items":{"$ref":"#/components/schemas/WorkflowToolLocator"},"title":"Tools"}},"title":"WorkflowToolNodeModel"},"WorkflowToolNodeModel-Output":{"type":"object","properties":{"type":{"type":"string","default":"tool","const":"tool","title":"Type"},"position":{"description":"Position of the node in the workflow.","$ref":"#/components/schemas/Position-Output"},"edge_order":{"description":"The ids of outgoing edges in the order they should be evaluated.","type":"array","items":{"type":"string"},"title":"Edge Order"},"tools":{"description":"List of tools to execute in parallel. The entire node is considered successful if all tools are executed successfully.","type":"array","items":{"$ref":"#/components/schemas/WorkflowToolLocator"},"title":"Tools"}},"required":["type","position","edge_order","tools"],"title":"WorkflowToolNodeModel"},"WorkflowToolResponseModel-Input":{"description":"A common model for workflow tool responses.","type":"object","properties":{"steps":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WorkflowToolEdgeStepModel"},{"$ref":"#/components/schemas/WorkflowToolNestedToolsStepModel-Input"},{"$ref":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel"}],"discriminator":{"propertyName":"type","mapping":{"edge":"#/components/schemas/WorkflowToolEdgeStepModel","max_iterations_exceeded":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel","nested_tools":"#/components/schemas/WorkflowToolNestedToolsStepModel-Input"}}},"title":"Steps"}},"title":"WorkflowToolResponseModel"},"WorkflowToolResponseModel-Output":{"description":"A common model for workflow tool responses.","type":"object","properties":{"steps":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/WorkflowToolEdgeStepModel"},{"$ref":"#/components/schemas/WorkflowToolNestedToolsStepModel-Output"},{"$ref":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel"}],"discriminator":{"propertyName":"type","mapping":{"edge":"#/components/schemas/WorkflowToolEdgeStepModel","max_iterations_exceeded":"#/components/schemas/WorkflowToolMaxIterationsExceededStepModel","nested_tools":"#/components/schemas/WorkflowToolNestedToolsStepModel-Output"}}},"title":"Steps"}},"title":"WorkflowToolResponseModel"},"WorkflowUnconditionalModel-Input":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"unconditional","const":"unconditional","title":"Type"}},"title":"WorkflowUnconditionalModel"},"WorkflowUnconditionalModel-Output":{"type":"object","properties":{"label":{"description":"Optional human-readable label for the condition used throughout the UI.","anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"type":{"type":"string","default":"unconditional","const":"unconditional","title":"Type"}},"required":["label","type"],"title":"WorkflowUnconditionalModel"},"WorkspaceAnalyticsQueryResponseModel":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"string"},"title":"Columns"},"column_types":{"type":"array","items":{"type":"string","enum":["String","Float","DateTime","Int","Bool","JSON","Map","Array"]},"title":"Column Types"},"rows":{"type":"array","items":{"items":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"},{"type":"null"}]},"type":"array"},"title":"Rows"},"column_units":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/ColumnUnit"},{"type":"null"}]},"title":"Column Units"}},"required":["columns","column_types","rows","column_units"],"title":"WorkspaceAnalyticsQueryResponseModel"},"WorkspaceApiKeyListResponseModel":{"type":"object","properties":{"api-keys":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceApiKeyResponseModel"},"title":"Api-Keys"}},"required":["api-keys"],"title":"WorkspaceApiKeyListResponseModel"},"WorkspaceApiKeyResponseModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"hint":{"type":"string","title":"Hint"},"key_id":{"type":"string","title":"Key Id"},"service_account_user_id":{"type":"string","title":"Service Account User Id"},"created_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"is_disabled":{"type":"boolean","default":false,"title":"Is Disabled"},"permissions":{"anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"null"}],"title":"Permissions"},"disable_reason":{"anyOf":[{"$ref":"#/components/schemas/LockReason"},{"type":"null"}]},"character_limit":{"description":"Maximum number of credits allowed in the current billing period.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Limit"},"character_count":{"description":"Credits already used in the current billing period.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Count"},"hashed_xi_api_key":{"type":"string","title":"Hashed Xi Api Key"},"allowed_ips":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1},{"type":"null"}],"title":"Allowed Ips"},"third_party_disable_allowed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Third Party Disable Allowed"}},"required":["name","hint","key_id","service_account_user_id","hashed_xi_api_key"],"title":"WorkspaceApiKeyResponseModel"},"WorkspaceAuditLogEntryResponse":{"description":"Audit log entry with Firestore document ID for API responses.","type":"object","properties":{"metadata":{"description":"Event metadata","type":"object","additionalProperties":true,"title":"Metadata"},"time":{"description":"Event time in milliseconds since epoch","type":"integer","title":"Time"},"activity_id":{"description":"Activity ID","anyOf":[{"$ref":"#/components/schemas/AccountChangeActivityId"},{"$ref":"#/components/schemas/AuthenticationActivityId"},{"$ref":"#/components/schemas/EntityManagementActivityId"},{"$ref":"#/components/schemas/UserAccessManagementActivityId"},{"$ref":"#/components/schemas/GroupManagementActivityId"}],"title":"Activity Id"},"activity_name":{"description":"Activity name","type":"string","title":"Activity Name"},"category_name":{"description":"Event category","type":"string","default":"Identity & Access Management","title":"Category Name"},"category_uid":{"description":"Category UID for IAM","type":"integer","default":3,"title":"Category Uid"},"class_name":{"description":"Event class name","type":"string","default":"","title":"Class Name"},"class_uid":{"description":"Event class UID","type":"integer","default":0,"title":"Class Uid"},"severity_id":{"description":"Severity level","default":1,"$ref":"#/components/schemas/SeverityId"},"status_id":{"description":"Status of the action","$ref":"#/components/schemas/StatusId"},"actor":{"description":"Actor performing the action","$ref":"#/components/schemas/ActorModel"},"device":{"description":"Device information","anyOf":[{"$ref":"#/components/schemas/DeviceModel"},{"type":"null"}]},"http_request":{"description":"HTTP request details","anyOf":[{"$ref":"#/components/schemas/HttpRequestModel"},{"type":"null"}]},"message":{"description":"Human-readable event description","type":"string","title":"Message"},"unmapped":{"description":"Attributes not mapped to OCSF","type":"object","additionalProperties":true,"title":"Unmapped"},"id":{"description":"Firestore document ID","type":"string","title":"Id"},"time_dt":{"description":"Event time in human-readable RFC 3339 format, derived from 'time'.","type":"string","readOnly":true,"title":"Time Dt"},"type_uid":{"description":"OCSF type_uid is class_uid * 100 + activity_id.","type":"integer","readOnly":true,"title":"Type Uid"},"type_name":{"description":"OCSF type_name combines class_name and activity_name.","type":"string","readOnly":true,"title":"Type Name"}},"required":["activity_id","activity_name","status_id","actor","message","id","time_dt","type_uid","type_name"],"title":"WorkspaceAuditLogEntryResponse"},"WorkspaceAuditLogsPageResponse":{"description":"Paginated workspace audit log response.","type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceAuditLogEntryResponse"},"title":"Entries"},"has_more":{"type":"boolean","title":"Has More"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"required":["entries","has_more","next_cursor"],"title":"WorkspaceAuditLogsPageResponse"},"WorkspaceBatchCallsResponse":{"type":"object","properties":{"batch_calls":{"type":"array","items":{"$ref":"#/components/schemas/BatchCallResponse"},"title":"Batch Calls"},"next_doc":{"description":"The next document, used to paginate through the batch calls","anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Doc"},"has_more":{"description":"Whether there are more batch calls to paginate through","type":"boolean","default":false,"title":"Has More"}},"required":["batch_calls"],"title":"WorkspaceBatchCallsResponse"},"WorkspaceCreateApiKeyResponseModel":{"type":"object","properties":{"xi-api-key":{"type":"string","title":"Xi-Api-Key"},"key_id":{"type":"string","title":"Key Id"}},"required":["xi-api-key","key_id"],"title":"WorkspaceCreateApiKeyResponseModel"},"WorkspaceCreateServiceAccountResponseModel":{"type":"object","properties":{"service-account-user-id":{"type":"string","title":"Service-Account-User-Id"}},"required":["service-account-user-id"],"title":"WorkspaceCreateServiceAccountResponseModel"},"WorkspaceCreateWebhookResponseModel":{"type":"object","properties":{"webhook_id":{"type":"string","title":"Webhook Id"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"}},"required":["webhook_id"],"title":"WorkspaceCreateWebhookResponseModel"},"WorkspaceGroupByNameResponseModel":{"type":"object","properties":{"name":{"description":"The name of the workspace group.","type":"string","title":"Name"},"id":{"description":"The ID of the workspace group.","type":"string","title":"Id"},"members_emails":{"description":"The emails of the members of the workspace group.","type":"array","items":{"type":"string"},"title":"Members Emails"}},"example":{"id":"1234567890","members_emails":["john.doe@example.com","jane.smith@example.com"],"name":"My Workspace Group"},"required":["name","id","members_emails"],"title":"WorkspaceGroupByNameResponseModel"},"WorkspaceGroupPermission":{"type":"string","enum":["text_to_speech","speech_to_speech","speech_to_text","voice_lab","sound_effects","projects","voiceover_studio","dubbing","audio_native","conversational_ai","conversational_ai_read","voice_isolator","ai_speech_classifier","synthid_detector","add_voice_from_voice_library","create_instant_voice_clone","create_professional_voice_clone","create_user_api_key","publish_studio_project","music","image_video_generation","flows","templates","share_voice_externally","publish_voice_to_voice_library","view_fiat_balance","workspace_analytics_full_read","service_accounts_manage","webhooks_manage","group_members_manage","workspace_members_invite","workspace_members_remove","terms_of_service_accept","audit_log_read","conversation_privacy_manage","copy_resources_cross_workspace","voice_design"],"title":"WorkspaceGroupPermission"},"WorkspaceGroupResponseModel":{"type":"object","properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"members":{"type":"array","items":{"type":"string"},"title":"Members"},"permissions":{"anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceGroupPermission"},"type":"array"},{"type":"null"}],"title":"Permissions"},"group_usage_limit":{"anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"},{"type":"null"}],"title":"Group Usage Limit"},"group_pvc_limit":{"anyOf":[{"type":"integer"},{"type":"string","const":"unlimited"},{"type":"null"}],"title":"Group Pvc Limit"},"character_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Count"},"scim_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scim External Id"},"is_scim_synced":{"type":"boolean","default":false,"title":"Is Scim Synced"},"scim_group":{"anyOf":[{"$ref":"#/components/schemas/ScimGroupResponseModel"},{"type":"null"}]},"scim_frozen":{"type":"boolean","default":false,"title":"Scim Frozen"}},"required":["name","id","members","permissions"],"title":"WorkspaceGroupResponseModel"},"WorkspaceMemberResponseModel":{"description":"Public workspace member fields exposed via GET /v1/workspace/members.","type":"object","properties":{"user_id":{"description":"The user ID of the workspace member.","type":"string","title":"User Id"},"email":{"description":"The email address of the workspace member.","type":"string","title":"Email"},"first_name":{"description":"The first name of the workspace member, if available.","anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"seat_type":{"description":"The seat type (role) of the workspace member.","anyOf":[{"$ref":"#/components/schemas/SeatType"},{"type":"null"}]},"is_owner":{"description":"Whether the member is the workspace owner.","type":"boolean","title":"Is Owner"},"is_locked":{"description":"Whether the member's account is locked in this workspace.","type":"boolean","title":"Is Locked"}},"required":["user_id","email","first_name","seat_type","is_owner","is_locked"],"title":"WorkspaceMemberResponseModel"},"WorkspaceResourceType":{"description":"Resource types that can be shared in the workspace. The name always need to match the collection names","type":"string","enum":["voice","voice_collection","pronunciation_dictionary","dubbing","project","convai_agents","convai_knowledge_base_documents","convai_tools","convai_settings","convai_secrets","workspace_auth_connections","convai_phone_numbers","convai_mcp_servers","convai_api_integration_connections","convai_api_integration_trigger_connections","convai_batch_calls","convai_agent_response_tests","convai_test_suite_invocations","convai_crawl_jobs","convai_crawl_tasks","convai_kb_external_sync_jobs","convai_whatsapp_accounts","convai_agent_versions","convai_agent_branches","convai_agent_versions_deployments","convai_memory_entries","convai_coaching_proposals","convai_templates","dashboard","dashboard_configuration","convai_agent_drafts","resource_locators","assets","content_generations","content_templates","songs","transcription_tasks","avatars","avatar_video_generations","resource_collection","studio_projects","convai_analysis_items"],"title":"WorkspaceResourceType"},"WorkspaceServiceAccountListResponseModel":{"type":"object","properties":{"service-accounts":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceServiceAccountResponseModel"},"title":"Service-Accounts"}},"required":["service-accounts"],"title":"WorkspaceServiceAccountListResponseModel"},"WorkspaceServiceAccountResponseModel":{"type":"object","properties":{"service_account_user_id":{"type":"string","title":"Service Account User Id"},"name":{"type":"string","title":"Name"},"created_at_unix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At Unix"},"api-keys":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceApiKeyResponseModel"},"title":"Api-Keys"},"default_sharing_groups":{"type":"array","items":{"$ref":"#/components/schemas/DefaultSharingGroupResponseModel"},"default":[],"title":"Default Sharing Groups"}},"required":["service_account_user_id","name","api-keys"],"title":"WorkspaceServiceAccountResponseModel"},"WorkspaceWebhookEventType":{"type":"string","enum":["voice_library_removal_notice","speech_to_text","agent_qa"],"title":"WorkspaceWebhookEventType"},"WorkspaceWebhookListResponseModel":{"type":"object","properties":{"webhooks":{"description":"List of webhooks currently configured for the workspace","type":"array","items":{"$ref":"#/components/schemas/WorkspaceWebhookResponseModel"},"title":"Webhooks"}},"example":{"webhooks":[{"auth_type":"hmac","created_at_unix":123456789,"is_auto_disabled":false,"is_disabled":false,"most_recent_failure_error_code":404,"most_recent_failure_timestamp":123456799,"name":"My Webhook","usage":[{"usage_type":"ConvAI Settings"}],"webhook_id":"123","webhook_url":"https://elevenlabs.io/example-callback-url"}]},"required":["webhooks"],"title":"WorkspaceWebhookListResponseModel"},"WorkspaceWebhookResponseModel":{"type":"object","properties":{"name":{"description":"The display name for this webhook.","type":"string","title":"Name"},"webhook_id":{"description":"The unique ID for this webhook.","type":"string","title":"Webhook Id"},"webhook_url":{"description":"The HTTPS callback URL that is called when this webhook is triggered in the platform.","type":"string","title":"Webhook Url"},"is_disabled":{"description":"Whether the webhook has been manually disabled by a user.","type":"boolean","title":"Is Disabled"},"is_auto_disabled":{"description":"Whether the webhook has been automatically disabled due to repeated consecutive failures over a long period of time.","type":"boolean","title":"Is Auto Disabled"},"created_at_unix":{"description":"Original creation time of the webhook.","type":"integer","title":"Created At Unix"},"auth_type":{"description":"The authentication mode used to secure the webhook.","$ref":"#/components/schemas/WebhookAuthMethodType"},"usage":{"description":"The list of products that are currently configured to trigger this webhook.","anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceWebhookUsageResponseModel"},"type":"array"},{"type":"null"}],"title":"Usage"},"events":{"description":"The workspace-level events this webhook is currently subscribed to. Only populated when usages are requested.","anyOf":[{"items":{"$ref":"#/components/schemas/WorkspaceWebhookEventType"},"type":"array"},{"type":"null"}],"title":"Events"},"most_recent_failure_error_code":{"description":"The most recent error code returned from the callback URL.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Most Recent Failure Error Code"},"most_recent_failure_timestamp":{"description":"The most recent time the webhook failed, failures are any non-200 codes returned by the callback URL.","anyOf":[{"type":"integer"},{"type":"null"}],"title":"Most Recent Failure Timestamp"}},"required":["name","webhook_id","webhook_url","is_disabled","is_auto_disabled","created_at_unix","auth_type"],"title":"WorkspaceWebhookResponseModel"},"WorkspaceWebhookUsageResponseModel":{"type":"object","properties":{"usage_type":{"$ref":"#/components/schemas/WebhookUsageType"}},"required":["usage_type"],"title":"WorkspaceWebhookUsageResponseModel"},"PromptAgentDBModel":{"properties":{"tools":{"x-fern-type":"unknown"}}},"FeedbackResponseModel":{"x-fern-type-name":"FeedbackItem"},"HistoryItemResponseModel":{"x-fern-type-name":"HistoryItemResponse","properties":{"state":{"x-fern-type-name":"HistoryItemState"},"voice_category":{"x-fern-type-name":"VoiceCategory"}}},"Age":{"x-fern-type-name":"Age"},"Gender":{"x-fern-type-name":"Gender"},"Body_Add_project_v1_projects_add_post":{"x-fern-type-name":"AddProjectRequest"},"Body_Add_sharing_voice_v1_voices_add__public_user_id___voice_id__post":{"x-fern-type-name":"AddSharingVoiceRequest"},"Body_Create_a_previously_generated_voice_v1_voice_generation_create_voice_post":{"x-fern-type-name":"CreatePreviouslyGeneratedVoiceRequest"},"Body_Creates_AudioNative_enabled_project__v1_audio_native_post":{"x-fern-type-name":"CreateAudioNativeProjectRequest"},"Body_Generate_a_random_voice_v1_voice_generation_generate_voice_post":{"x-fern-type-name":"GenerateVoiceRequest"},"Body_Text_to_speech_v1_text_to_speech__voice_id__post":{"x-fern-type-name":"TextToSpeechRequest"},"Body_Text_to_speech_v1_text_to_speech__voice_id__stream_post":{"x-fern-type-name":"TextToSpeechStreamRequest"},"Body_Update_Pronunciation_Dictionaries_v1_projects__project_id__update_pronunciation_dictionaries_post":{"x-fern-type-name":"UpdatePronunciationDictionariesRequest"},"GetPhoneNumberResponseModel":{"x-fern-type-name":"GetPhoneNumberResponse"},"VoiceGenerationParameterOptionResponseModel":{"x-fern-type-name":"VoiceGenerationParameterOptionResponse"},"VoiceGenerationParameterResponseModel":{"x-fern-type-name":"VoiceGenerationParameterResponse"},"Body_Text_to_speech_with_timestamps_v1_text_to_speech__voice_id__with_timestamps_post":{"x-fern-type-name":"TextToSpeechWithTimestampsRequest"},"Body_Text_to_speech_streaming_with_timestamps_v1_text_to_speech__voice_id__stream_with_timestamps_post":{"x-fern-type-name":"TextToSpeechStreamWithTimestampsRequest"},"Body_Create_a_new_voice_from_voice_preview_v1_text_to_voice_create_voice_from_preview_post":{"x-fern-type-name":"SaveVoicePreviewRequest"},"Body_Edit_voice_settings_v1_voices__voice_id__settings_edit_post":{"x-fern-type-name":"EditVoiceSettingsRequest"},"Body_Get_Chapters_v1_studio_projects__project_id__chapters_get":{"x-fern-type-name":"GetChaptersRequest"},"Body_Get_Chapter_v1_studio_projects__project_id__chapters__chapter_id__get":{"x-fern-type-name":"GetChapterRequest"},"Body_Delete_Chapter_v1_studio_projects__project_id__chapters__chapter_id__delete":{"x-fern-type-name":"DeleteChapterRequest"},"Body_Get_Project_Chapters_Snapshots_v1_studio_projects__project_id__chapters__chapter_id__snapshots_get":{"x-fern-type-name":"GetChapterSnapshotsRequest"},"Body_Get_Projects_v1_studio_projects_get":{"x-fern-type-name":"GetProjectsRequest"},"Body_Get_Project_v1_studio_projects__project_id__get":{"x-fern-type-name":"GetProjectRequest"},"Body_Delete_Project_v1_studio_projects__project_id__delete":{"x-fern-type-name":"DeleteProjectRequest"},"Body_Create_transcript_v1_speech_to_text_post":{"x-fern-type-name":"CreateTranscriptRequest"},"Body_Remove_member_from_user_group_v1_workspace_groups__group_id__members_remove_post":{"x-fern-type-name":"RemoveMemberFromGroupRequest"},"Body_Update_audio_native_project_v1_audio_native__project_id__content_post":{"x-fern-type-name":"UpdateAudioNativeProjectRequest"},"Body_Update_Project_v1_studio_projects__project_id__post":{"x-fern-type-name":"UpdateProjectRequest"},"Body_Update_Chapter_v1_studio_projects__project_id__chapters__chapter_id__post":{"x-fern-type-name":"UpdateChapterRequest"},"CharacterUsageResponse":{"x-fern-type-name":"CharacterUsageResponse"},"GetPronunciationDictionariesResponseModel":{"x-fern-type-name":"GetPronunciationDictionariesResponse"},"GetPronunciationDictionaryResponseModel":{"x-fern-type-name":"GetPronunciationDictionaryResponse"},"DynamicVariableNestedValueType-Input":{"x-fern-type":"unknown"},"DynamicVariableNestedValueType-Output":{"x-fern-type":"unknown"},"PromptAgent-Input":{"x-fern-type-name":"PromptAgent"},"PromptAgent-Output":{"x-fern-type-name":"PromptAgent"},"PromptAgentApiModel-Input":{"x-fern-type-name":"PromptAgent"},"PromptAgentApiModel-Output":{"x-fern-type-name":"PromptAgent"}}},"tags":[{"name":"text-to-speech","description":"Convert text into lifelike speech using a voice of your choice."},{"name":"speech-to-speech","description":"Create speech by combining the style and content of an audio file you upload with a voice of your choice."},{"name":"speech-to-text","description":"Transcribe your audio files with detailed speaker annotations and precise timestamps using our cutting-edge model."},{"name":"forced-alignment","description":"Force align an audio file to a text transcript to get precise word-level and character level timing information. Response is a list of characters with their start and end times as milliseconds elapsed from the start of the recording."},{"name":"models","description":"Access the different models of the platform.","x-displayName":"Models"},{"name":"productions","description":"Access and manage ElevenProductions orders."},{"name":"samples","description":"Access to voices created either by you or ElevenLabs.","x-displayName":"Samples"},{"name":"samples","description":"Access to your samples. A sample is any audio file you attached to a voice. A voice can have one or more samples."},{"name":"speech-history","description":"Accesses your speech history. Your speech history is a list of all your created audio including its metadata using our text-to-speech and speech-to-speech models."},{"name":"studios","description":"Access, create and convert Studio Projects programmatically, only specifically whitelisted accounts can access the Studio API. If you need access please contact our sales team."},{"name":"user","description":"Access to workspace related endpoints.","x-displayName":"User"},{"name":"usage","description":"Design and generate custom voices from a text prompt.","x-displayName":"Usage"},{"name":"text-to-dialogue","description":"Generate multi-speaker dialogue from a script using different voices."},{"name":"sound-generation","description":"Generate sound effects and non-speech audio from a text prompt."},{"name":"audio-isolation","description":"Isolate speech from background noise in an audio file."},{"name":"audio-native","description":"Embed AI-narrated audio players into your website using Audio Native."},{"name":"music-generation","description":"Generate music from a text prompt."},{"name":"music-finetunes","description":"Create and manage music finetunes."},{"name":"video-to-music","description":"Generate music that matches the content and mood of a video."},{"name":"Speech Engine","description":"Low-latency, real-time speech generation endpoints."},{"name":"pvc-voices","description":"Create and manage Professional Voice Clones (PVCs)."},{"name":"dubbing","description":"Dub audio and video content into other languages while preserving the original speaker's voice."},{"name":"resource","description":"Manage dubbing resources, including segments, speakers, and language tracks."},{"name":"segment","description":"Manage individual segments within a dubbing resource."},{"name":"studio","description":"Access, create and convert Studio Projects programmatically. Only specifically whitelisted accounts can access the Studio API. If you need access please contact our sales team."},{"name":"Pronunciation Dictionary","description":"Manage pronunciation dictionaries that override how specific words are pronounced."},{"name":"Conversational AI","description":"Build and manage conversational AI agents (legacy tag — see also Agents Platform)."},{"name":"Agents Platform","description":"Build, configure and manage Conversational AI agents, knowledge bases, tools, and conversations."},{"name":"Agents Insights","description":"Query analytics and insights about agent conversations and performance."},{"name":"Agents Workspace Analytics","description":"Workspace-level analytics for Conversational AI usage."},{"name":"Single Use Token","description":"Mint short-lived, single-use tokens for client-side use of Conversational AI agents."},{"name":"api-key","description":"Manage API keys for your workspace."},{"name":"enterprise","description":"Endpoints available only to enterprise workspaces."},{"name":"access:all","description":"Endpoints accessible to all authenticated callers regardless of scope."}],"servers":[{"x-fern-server-name":"Production","url":"https://api.elevenlabs.io/","description":"Production (default). Routed to the closest region."},{"url":"https://api.us.elevenlabs.io/","x-fern-server-name":"Production US","description":"Production routed only to the US region."},{"url":"https://api.eu.residency.elevenlabs.io","x-fern-server-name":"Production EU","description":"Production route for customers with EU data residency."},{"url":"https://api.in.residency.elevenlabs.io","x-fern-server-name":"Production India","description":"Production route for customers with India data residency."},{"url":"https://api.sg.residency.elevenlabs.io","x-fern-server-name":"Production Singapore","description":"Production route for customers with Singapore data residency."}],"x-fern-global-headers":[{"header":"xi-api-key","name":"api-key","optional":true,"env":"ELEVENLABS_API_KEY"}],"x-fern-groups":{"samples":{"summary":"Samples"},"voices":{"summary":"Voices"},"studio":{"summary":"Studio"},"models":{"summary":"Models"}}}
\ No newline at end of file
diff --git a/cli/elevenlabs/sdk.rs b/cli/elevenlabs/sdk.rs
index 9effb96..043e40f 100644
--- a/cli/elevenlabs/sdk.rs
+++ b/cli/elevenlabs/sdk.rs
@@ -108,11 +108,6 @@ pub fn client(ctx: &AppContext) -> elevenlabs_sdk::api::ApiClient {
},
},
},
- music: elevenlabs_sdk::api::MusicClient {
- http_client: http_client.clone(),
- composition_plan: elevenlabs_sdk::api::resources::music::CompositionPlanClient { http_client: http_client.clone() },
- finetunes: elevenlabs_sdk::api::resources::music::FinetunesClient { http_client: http_client.clone() },
- },
dubbing: elevenlabs_sdk::api::DubbingClient {
http_client: http_client.clone(),
project: elevenlabs_sdk::api::resources::dubbing::ProjectClient {
@@ -165,83 +160,88 @@ pub fn client(ctx: &AppContext) -> elevenlabs_sdk::api::ApiClient {
api_keys: elevenlabs_sdk::api::resources::service_accounts::ApiKeysClient { http_client: http_client.clone() },
},
webhooks: elevenlabs_sdk::api::WebhooksClient { http_client: http_client.clone() },
+ music: elevenlabs_sdk::api::MusicClient {
+ http_client: http_client.clone(),
+ composition_plan: elevenlabs_sdk::api::resources::music::CompositionPlanClient { http_client: http_client.clone() },
+ finetunes: elevenlabs_sdk::api::resources::music::FinetunesClient { http_client: http_client.clone() },
+ },
speech_to_text: elevenlabs_sdk::api::SpeechToTextClient {
http_client: http_client.clone(),
transcripts: elevenlabs_sdk::api::resources::speech_to_text::TranscriptsClient2 { http_client: http_client.clone() },
},
forced_alignment: elevenlabs_sdk::api::ForcedAlignmentClient { http_client: http_client.clone() },
- conversational_ai: elevenlabs_sdk::api::ConversationalAiClient {
+ agents: elevenlabs_sdk::api::AgentsClient {
http_client: http_client.clone(),
- conversations: elevenlabs_sdk::api::resources::conversational_ai::ConversationsClient {
+ conversations: elevenlabs_sdk::api::resources::agents::ConversationsClient {
http_client: http_client.clone(),
- audio: elevenlabs_sdk::api::resources::conversational_ai::conversations::AudioClient { http_client: http_client.clone() },
- feedback: elevenlabs_sdk::api::resources::conversational_ai::conversations::FeedbackClient { http_client: http_client.clone() },
- messages: elevenlabs_sdk::api::resources::conversational_ai::conversations::MessagesClient { http_client: http_client.clone() },
- tags: elevenlabs_sdk::api::resources::conversational_ai::conversations::TagsClient { http_client: http_client.clone() },
- files: elevenlabs_sdk::api::resources::conversational_ai::conversations::FilesClient { http_client: http_client.clone() },
- topics: elevenlabs_sdk::api::resources::conversational_ai::conversations::TopicsClient { http_client: http_client.clone() },
- analysis: elevenlabs_sdk::api::resources::conversational_ai::conversations::AnalysisClient { http_client: http_client.clone() },
+ audio: elevenlabs_sdk::api::resources::agents::conversations::AudioClient { http_client: http_client.clone() },
+ feedback: elevenlabs_sdk::api::resources::agents::conversations::FeedbackClient { http_client: http_client.clone() },
+ messages: elevenlabs_sdk::api::resources::agents::conversations::MessagesClient { http_client: http_client.clone() },
+ tags: elevenlabs_sdk::api::resources::agents::conversations::TagsClient { http_client: http_client.clone() },
+ files: elevenlabs_sdk::api::resources::agents::conversations::FilesClient { http_client: http_client.clone() },
+ topics: elevenlabs_sdk::api::resources::agents::conversations::TopicsClient { http_client: http_client.clone() },
+ analysis: elevenlabs_sdk::api::resources::agents::conversations::AnalysisClient { http_client: http_client.clone() },
},
- twilio: elevenlabs_sdk::api::resources::conversational_ai::TwilioClient { http_client: http_client.clone() },
- exotel: elevenlabs_sdk::api::resources::conversational_ai::ExotelClient { http_client: http_client.clone() },
- whatsapp: elevenlabs_sdk::api::resources::conversational_ai::WhatsappClient { http_client: http_client.clone() },
- agents: elevenlabs_sdk::api::resources::conversational_ai::AgentsClient {
+ twilio: elevenlabs_sdk::api::resources::agents::TwilioClient { http_client: http_client.clone() },
+ exotel: elevenlabs_sdk::api::resources::agents::ExotelClient { http_client: http_client.clone() },
+ whatsapp: elevenlabs_sdk::api::resources::agents::WhatsappClient { http_client: http_client.clone() },
+ summaries: elevenlabs_sdk::api::resources::agents::SummariesClient { http_client: http_client.clone() },
+ widget: elevenlabs_sdk::api::resources::agents::WidgetClient {
http_client: http_client.clone(),
- summaries: elevenlabs_sdk::api::resources::conversational_ai::agents::SummariesClient { http_client: http_client.clone() },
- widget: elevenlabs_sdk::api::resources::conversational_ai::agents::WidgetClient {
+ avatar: elevenlabs_sdk::api::resources::agents::widget::AvatarClient { http_client: http_client.clone() },
+ },
+ link: elevenlabs_sdk::api::resources::agents::LinkClient { http_client: http_client.clone() },
+ knowledge_base: elevenlabs_sdk::api::resources::agents::KnowledgeBaseClient {
+ http_client: http_client.clone(),
+ documents: elevenlabs_sdk::api::resources::agents::knowledge_base::DocumentsClient {
http_client: http_client.clone(),
- avatar: elevenlabs_sdk::api::resources::conversational_ai::agents::widget::AvatarClient { http_client: http_client.clone() },
+ summaries: elevenlabs_sdk::api::resources::agents::knowledge_base::documents::SummariesClient2 { http_client: http_client.clone() },
+ chunk: elevenlabs_sdk::api::resources::agents::knowledge_base::documents::ChunkClient { http_client: http_client.clone() },
+ chunks: elevenlabs_sdk::api::resources::agents::knowledge_base::documents::ChunksClient { http_client: http_client.clone() },
},
- link: elevenlabs_sdk::api::resources::conversational_ai::agents::LinkClient { http_client: http_client.clone() },
- knowledge_base: elevenlabs_sdk::api::resources::conversational_ai::agents::KnowledgeBaseClient2 { http_client: http_client.clone() },
- llm_usage: elevenlabs_sdk::api::resources::conversational_ai::agents::LlmUsageClient2 { http_client: http_client.clone() },
- branches: elevenlabs_sdk::api::resources::conversational_ai::agents::BranchesClient { http_client: http_client.clone() },
- versions: elevenlabs_sdk::api::resources::conversational_ai::agents::VersionsClient { http_client: http_client.clone() },
- deployments: elevenlabs_sdk::api::resources::conversational_ai::agents::DeploymentsClient { http_client: http_client.clone() },
- drafts: elevenlabs_sdk::api::resources::conversational_ai::agents::DraftsClient { http_client: http_client.clone() },
+ crawl_jobs: elevenlabs_sdk::api::resources::agents::knowledge_base::CrawlJobsClient { http_client: http_client.clone() },
+ document: elevenlabs_sdk::api::resources::agents::knowledge_base::DocumentClient { http_client: http_client.clone() },
},
- tests: elevenlabs_sdk::api::resources::conversational_ai::TestsClient {
+ tests: elevenlabs_sdk::api::resources::agents::TestsClient {
http_client: http_client.clone(),
- folders: elevenlabs_sdk::api::resources::conversational_ai::tests::FoldersClient { http_client: http_client.clone() },
- invocations: elevenlabs_sdk::api::resources::conversational_ai::tests::InvocationsClient { http_client: http_client.clone() },
+ folders: elevenlabs_sdk::api::resources::agents::tests::FoldersClient { http_client: http_client.clone() },
+ invocations: elevenlabs_sdk::api::resources::agents::tests::InvocationsClient { http_client: http_client.clone() },
},
- users: elevenlabs_sdk::api::resources::conversational_ai::UsersClient { http_client: http_client.clone() },
- phone_numbers: elevenlabs_sdk::api::resources::conversational_ai::PhoneNumbersClient { http_client: http_client.clone() },
- llm_usage: elevenlabs_sdk::api::resources::conversational_ai::LlmUsageClient { http_client: http_client.clone() },
- llm: elevenlabs_sdk::api::resources::conversational_ai::LlmClient { http_client: http_client.clone() },
- knowledge_base: elevenlabs_sdk::api::resources::conversational_ai::KnowledgeBaseClient {
+ users: elevenlabs_sdk::api::resources::agents::UsersClient { http_client: http_client.clone() },
+ phone_numbers: elevenlabs_sdk::api::resources::agents::PhoneNumbersClient { http_client: http_client.clone() },
+ llm_usage: elevenlabs_sdk::api::resources::agents::LlmUsageClient { http_client: http_client.clone() },
+ llm: elevenlabs_sdk::api::resources::agents::LlmClient { http_client: http_client.clone() },
+ tools: elevenlabs_sdk::api::resources::agents::ToolsClient {
http_client: http_client.clone(),
- documents: elevenlabs_sdk::api::resources::conversational_ai::knowledge_base::DocumentsClient {
- http_client: http_client.clone(),
- summaries: elevenlabs_sdk::api::resources::conversational_ai::knowledge_base::documents::SummariesClient2 { http_client: http_client.clone() },
- chunk: elevenlabs_sdk::api::resources::conversational_ai::knowledge_base::documents::ChunkClient { http_client: http_client.clone() },
- chunks: elevenlabs_sdk::api::resources::conversational_ai::knowledge_base::documents::ChunksClient { http_client: http_client.clone() },
- },
- document: elevenlabs_sdk::api::resources::conversational_ai::knowledge_base::DocumentClient { http_client: http_client.clone() },
+ executions: elevenlabs_sdk::api::resources::agents::tools::ExecutionsClient { http_client: http_client.clone() },
},
- tools: elevenlabs_sdk::api::resources::conversational_ai::ToolsClient {
+ settings: elevenlabs_sdk::api::resources::agents::SettingsClient { http_client: http_client.clone() },
+ secrets: elevenlabs_sdk::api::resources::agents::SecretsClient { http_client: http_client.clone() },
+ batch_calls: elevenlabs_sdk::api::resources::agents::BatchCallsClient { http_client: http_client.clone() },
+ sip_trunk: elevenlabs_sdk::api::resources::agents::SipTrunkClient { http_client: http_client.clone() },
+ mcp_servers: elevenlabs_sdk::api::resources::agents::McpServersClient {
http_client: http_client.clone(),
- executions: elevenlabs_sdk::api::resources::conversational_ai::tools::ExecutionsClient { http_client: http_client.clone() },
+ tools: elevenlabs_sdk::api::resources::agents::mcp_servers::ToolsClient2 { http_client: http_client.clone() },
+ approval_policy: elevenlabs_sdk::api::resources::agents::mcp_servers::ApprovalPolicyClient { http_client: http_client.clone() },
+ tool_approvals: elevenlabs_sdk::api::resources::agents::mcp_servers::ToolApprovalsClient { http_client: http_client.clone() },
+ tool_configs: elevenlabs_sdk::api::resources::agents::mcp_servers::ToolConfigsClient { http_client: http_client.clone() },
},
- settings: elevenlabs_sdk::api::resources::conversational_ai::SettingsClient { http_client: http_client.clone() },
- secrets: elevenlabs_sdk::api::resources::conversational_ai::SecretsClient { http_client: http_client.clone() },
- batch_calls: elevenlabs_sdk::api::resources::conversational_ai::BatchCallsClient { http_client: http_client.clone() },
- sip_trunk: elevenlabs_sdk::api::resources::conversational_ai::SipTrunkClient { http_client: http_client.clone() },
- mcp_servers: elevenlabs_sdk::api::resources::conversational_ai::McpServersClient {
+ whatsapp_accounts: elevenlabs_sdk::api::resources::agents::WhatsappAccountsClient { http_client: http_client.clone() },
+ branches: elevenlabs_sdk::api::resources::agents::BranchesClient { http_client: http_client.clone() },
+ versions: elevenlabs_sdk::api::resources::agents::VersionsClient { http_client: http_client.clone() },
+ deployments: elevenlabs_sdk::api::resources::agents::DeploymentsClient { http_client: http_client.clone() },
+ drafts: elevenlabs_sdk::api::resources::agents::DraftsClient { http_client: http_client.clone() },
+ agents: elevenlabs_sdk::api::resources::agents::AgentsClient2 {
http_client: http_client.clone(),
- tools: elevenlabs_sdk::api::resources::conversational_ai::mcp_servers::ToolsClient2 { http_client: http_client.clone() },
- approval_policy: elevenlabs_sdk::api::resources::conversational_ai::mcp_servers::ApprovalPolicyClient { http_client: http_client.clone() },
- tool_approvals: elevenlabs_sdk::api::resources::conversational_ai::mcp_servers::ToolApprovalsClient { http_client: http_client.clone() },
- tool_configs: elevenlabs_sdk::api::resources::conversational_ai::mcp_servers::ToolConfigsClient { http_client: http_client.clone() },
+ llm_usage: elevenlabs_sdk::api::resources::agents::agents::LlmUsageClient2 { http_client: http_client.clone() },
},
- whatsapp_accounts: elevenlabs_sdk::api::resources::conversational_ai::WhatsappAccountsClient { http_client: http_client.clone() },
- analytics: elevenlabs_sdk::api::resources::conversational_ai::AnalyticsClient {
+ analytics: elevenlabs_sdk::api::resources::agents::AnalyticsClient {
http_client: http_client.clone(),
- live_count: elevenlabs_sdk::api::resources::conversational_ai::analytics::LiveCountClient { http_client: http_client.clone() },
+ live_count: elevenlabs_sdk::api::resources::agents::analytics::LiveCountClient { http_client: http_client.clone() },
},
- dashboard: elevenlabs_sdk::api::resources::conversational_ai::DashboardClient {
+ dashboard: elevenlabs_sdk::api::resources::agents::DashboardClient {
http_client: http_client.clone(),
- settings: elevenlabs_sdk::api::resources::conversational_ai::dashboard::SettingsClient2 { http_client: http_client.clone() },
+ settings: elevenlabs_sdk::api::resources::agents::dashboard::SettingsClient2 { http_client: http_client.clone() },
},
},
speech_engine: elevenlabs_sdk::api::SpeechEngineClient { http_client: http_client.clone() },
diff --git a/cli/elevenlabs/workflow/api.rs b/cli/elevenlabs/workflow/api.rs
index 96ade99..496bc19 100644
--- a/cli/elevenlabs/workflow/api.rs
+++ b/cli/elevenlabs/workflow/api.rs
@@ -40,7 +40,7 @@ fn raw_request(
let client = crate::sdk::client(ctx);
crate::sdk::block_on(
client
- .conversational_ai
+ .agents
.http_client
.execute_request::(method, path, body, query, request_options()),
)
@@ -207,12 +207,7 @@ pub fn list_agents(ctx: &AppContext, search: Option<&str>) -> Result,
/// Delete an agent. Uses the typed SDK method (empty response body).
pub fn delete_agent(ctx: &AppContext, agent_id: &str) -> Result<(), CliError> {
let client = crate::sdk::client(ctx);
- crate::sdk::block_on(
- client
- .conversational_ai
- .agents
- .delete(agent_id, request_options()),
- )
+ crate::sdk::block_on(client.agents.delete(agent_id, request_options()))
}
/// List an agent's branches (raw JSON summaries).
diff --git a/elevenlabs-sdk/src/api/mod.rs b/elevenlabs-sdk/src/api/mod.rs
index efe0f04..b76e217 100644
--- a/elevenlabs-sdk/src/api/mod.rs
+++ b/elevenlabs-sdk/src/api/mod.rs
@@ -10,7 +10,7 @@
pub mod resources;
pub use resources::{
- ApiClient, AudioIsolationClient, AudioNativeClient, ConversationalAiClient, DubbingClient,
+ AgentsClient, ApiClient, AudioIsolationClient, AudioNativeClient, DubbingClient,
EnvironmentVariablesClient, ForcedAlignmentClient, HistoryClient, ModelsClient, MusicClient,
ProductionsClient, PronunciationDictionariesClient, SamplesClient, ServiceAccountsClient,
SpeechEngineClient, SpeechToSpeechClient, SpeechToTextClient, StudioClient,
diff --git a/elevenlabs-sdk/src/api/resources/agents/agents/llm_usage/agents_agents_llm_usage.rs b/elevenlabs-sdk/src/api/resources/agents/agents/llm_usage/agents_agents_llm_usage.rs
new file mode 100644
index 0000000..07e4b15
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/agents/llm_usage/agents_agents_llm_usage.rs
@@ -0,0 +1,67 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct LlmUsageClient2 {
+ pub http_client: HttpClient,
+}
+
+impl LlmUsageClient2 {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Calculates expected number of LLM tokens needed for the specified agent.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .agents
+ /// .llm_usage
+ /// .calculate(
+ /// &"agent_id".to_string(),
+ /// &LlmUsageCalculatorRequestModel {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn calculate(
+ &self,
+ agent_id: &str,
+ request: &LlmUsageCalculatorRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agent/{}/llm-usage/calculate", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/agents/llm_usage/mod.rs b/elevenlabs-sdk/src/api/resources/agents/agents/llm_usage/mod.rs
new file mode 100644
index 0000000..ed64836
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/agents/llm_usage/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_agents_llm_usage;
+pub use agents_agents_llm_usage::LlmUsageClient2;
diff --git a/elevenlabs-sdk/src/api/resources/agents/agents/mod.rs b/elevenlabs-sdk/src/api/resources/agents/agents/mod.rs
new file mode 100644
index 0000000..7e750e5
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/agents/mod.rs
@@ -0,0 +1,18 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient};
+
+pub mod llm_usage;
+pub use llm_usage::LlmUsageClient2;
+pub struct AgentsClient2 {
+ pub http_client: HttpClient,
+ pub llm_usage: LlmUsageClient2,
+}
+
+impl AgentsClient2 {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ llm_usage: LlmUsageClient2::new(config.clone())?,
+ })
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/analytics/live_count/agents_analytics_live_count.rs b/elevenlabs-sdk/src/api/resources/agents/analytics/live_count/agents_analytics_live_count.rs
new file mode 100644
index 0000000..c3f31d5
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/analytics/live_count/agents_analytics_live_count.rs
@@ -0,0 +1,69 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct LiveCountClient {
+ pub http_client: HttpClient,
+}
+
+impl LiveCountClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Get the live count of the ongoing conversations.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent to restrict the analytics to.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .analytics
+ /// .live_count
+ /// .get(
+ /// &AgentsAnalyticsLiveCountGetQueryRequest {
+ /// agent_id: Some("agent_id".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ request: &AgentsAnalyticsLiveCountGetQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/analytics/live-count",
+ None,
+ QueryBuilder::new()
+ .string("agent_id", request.agent_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/analytics/live_count/mod.rs b/elevenlabs-sdk/src/api/resources/agents/analytics/live_count/mod.rs
new file mode 100644
index 0000000..42dfb6c
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/analytics/live_count/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_analytics_live_count;
+pub use agents_analytics_live_count::LiveCountClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/analytics/mod.rs b/elevenlabs-sdk/src/api/resources/agents/analytics/mod.rs
new file mode 100644
index 0000000..b388a6d
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/analytics/mod.rs
@@ -0,0 +1,18 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient};
+
+pub mod live_count;
+pub use live_count::LiveCountClient;
+pub struct AnalyticsClient {
+ pub http_client: HttpClient,
+ pub live_count: LiveCountClient,
+}
+
+impl AnalyticsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ live_count: LiveCountClient::new(config.clone())?,
+ })
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/batch_calls/agents_batch_calls.rs b/elevenlabs-sdk/src/api/resources/agents/batch_calls/agents_batch_calls.rs
new file mode 100644
index 0000000..d508101
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/batch_calls/agents_batch_calls.rs
@@ -0,0 +1,353 @@
+use crate::api::*;
+use crate::{ApiError, ByteStream, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct BatchCallsClient {
+ pub http_client: HttpClient,
+}
+
+impl BatchCallsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Download all recipients and conversation results for a terminal batch call as CSV.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Streaming file download (use .into_bytes() to collect or stream chunks)
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .batch_calls
+ /// .export(&"batch_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn export(
+ &self,
+ batch_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_stream_request(
+ Method::GET,
+ &format!("v1/convai/batch-calling/{}/export", batch_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Submit a batch call request to schedule calls for multiple recipients.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .batch_calls
+ /// .create(
+ /// &BodySubmitABatchCallRequestV1ConvaiBatchCallingSubmitPost {
+ /// call_name: "call_name".to_string(),
+ /// agent_id: "agent_id".to_string(),
+ /// recipients: vec![OutboundCallRecipient {
+ /// ..Default::default()
+ /// }],
+ /// scheduled_time_unix: None,
+ /// agent_phone_number_id: None,
+ /// whatsapp_params: None,
+ /// timezone: None,
+ /// branch_id: None,
+ /// environment: None,
+ /// telephony_call_config: None,
+ /// target_concurrency_limit: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ request: &BodySubmitABatchCallRequestV1ConvaiBatchCallingSubmitPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/batch-calling/submit",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get all batch calls for the current workspace.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - Filter batch calls to a single agent.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .batch_calls
+ /// .list(
+ /// &AgentsBatchCallsListQueryRequest {
+ /// limit: Some(1),
+ /// last_doc: Some("last_doc".to_string()),
+ /// agent_id: Some("agent_id".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ request: &AgentsBatchCallsListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/batch-calling/workspace",
+ None,
+ QueryBuilder::new()
+ .int("limit", request.limit.clone())
+ .string("last_doc", request.last_doc.clone())
+ .string("agent_id", request.agent_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Get detailed information about a batch call including all recipients.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .batch_calls
+ /// .get(&"batch_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ batch_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/batch-calling/{}", batch_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Permanently delete a batch call and all recipient records. Conversations remain in history.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .batch_calls
+ /// .delete(&"batch_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ batch_id: &str,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/batch-calling/{}", batch_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Cancel a running batch call and set all recipients to cancelled status.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .batch_calls
+ /// .cancel(&"batch_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn cancel(
+ &self,
+ batch_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/batch-calling/{}/cancel", batch_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Retry a batch call, calling failed and no-response recipients again.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .batch_calls
+ /// .retry(&"batch_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn retry(
+ &self,
+ batch_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/batch-calling/{}/retry", batch_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/batch_calls/mod.rs b/elevenlabs-sdk/src/api/resources/agents/batch_calls/mod.rs
new file mode 100644
index 0000000..22cdd45
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/batch_calls/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_batch_calls;
+pub use agents_batch_calls::BatchCallsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/branches/agents_branches.rs b/elevenlabs-sdk/src/api/resources/agents/branches/agents_branches.rs
new file mode 100644
index 0000000..a5a5b15
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/branches/agents_branches.rs
@@ -0,0 +1,463 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct BranchesClient {
+ pub http_client: HttpClient,
+}
+
+impl BranchesClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Returns a list of branches an agent has
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `include_archived` - Whether archived branches should be included
+ /// * `limit` - How many results at most should be returned
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .branches
+ /// .list(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &AgentsBranchesListQueryRequest {
+ /// include_archived: Some(true),
+ /// limit: Some(1),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ agent_id: &str,
+ request: &AgentsBranchesListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/agents/{}/branches", agent_id),
+ None,
+ QueryBuilder::new()
+ .bool("include_archived", request.include_archived.clone())
+ .int("limit", request.limit.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Create a new branch from a given version of any branch
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .branches
+ /// .create(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &BodyCreateANewBranchV1ConvaiAgentsAgentIDBranchesPost {
+ /// parent_version_id: "parent_version_id".to_string(),
+ /// name: "name".to_string(),
+ /// description: "description".to_string(),
+ /// conversation_config: None,
+ /// platform_settings: None,
+ /// workflow: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ agent_id: &str,
+ request: &BodyCreateANewBranchV1ConvaiAgentsAgentIdBranchesPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agents/{}/branches", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get information about a single agent branch
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `branch_id` - Unique identifier for the branch.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .branches
+ /// .get(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &"agtbranch_0901k4aafjxxfxt93gd841r7tv5t".to_string(),
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ agent_id: &str,
+ branch_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/agents/{}/branches/{}", agent_id, branch_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Update agent branch properties such as archiving status and protection level
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `branch_id` - Unique identifier for the branch.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .branches
+ /// .update(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &"agtbranch_0901k4aafjxxfxt93gd841r7tv5t".to_string(),
+ /// &BodyUpdateAgentBranchV1ConvaiAgentsAgentIDBranchesBranchIDPatch {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ agent_id: &str,
+ branch_id: &str,
+ request: &BodyUpdateAgentBranchV1ConvaiAgentsAgentIdBranchesBranchIdPatch,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!("v1/convai/agents/{}/branches/{}", agent_id, branch_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Returns the result of merging the source branch into the target branch without performing the merge. Useful for showing an accurate diff before confirming.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `source_branch_id` - Unique identifier for the source branch to merge from.
+ /// * `target_branch_id` - The ID of the target branch to merge into.
+ /// * `force` - When true, source branch changes always win conflicts regardless of timestamps
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .branches
+ /// .preview_merge(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &"agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// &PreviewMergeQueryRequest {
+ /// target_branch_id: "agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// force: Some(true),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn preview_merge(
+ &self,
+ agent_id: &str,
+ source_branch_id: &str,
+ request: &PreviewMergeQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!(
+ "v1/convai/agents/{}/branches/{}/merge-preview",
+ agent_id, source_branch_id
+ ),
+ None,
+ QueryBuilder::new()
+ .string("target_branch_id", request.target_branch_id.clone())
+ .bool("force", request.force.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Merge a branch into a target branch
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `source_branch_id` - Unique identifier for the source branch to merge from.
+ /// * `target_branch_id` - The ID of the target branch to merge into.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client.agents.branches.merge(&"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(), &"agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(), &BodyMergeABranchIntoATargetBranchV1ConvaiAgentsAgentIDBranchesSourceBranchIDMergePost {
+ /// target_branch_id: "agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// archive_source_branch: None,
+ /// force: None
+ /// }, None).await;
+ /// }
+ /// ```
+ pub async fn merge(
+ &self,
+ agent_id: &str,
+ source_branch_id: &str,
+ request: &BodyMergeABranchIntoATargetBranchV1ConvaiAgentsAgentIdBranchesSourceBranchIdMergePost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!(
+ "v1/convai/agents/{}/branches/{}/merge",
+ agent_id, source_branch_id
+ ),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ QueryBuilder::new()
+ .string("target_branch_id", request.target_branch_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Returns the result of rebasing the branch onto main without performing the rebase. Useful for showing an accurate diff before confirming.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `branch_id` - Unique identifier for the source branch to merge from.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .branches
+ /// .preview_rebase(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &"agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn preview_rebase(
+ &self,
+ agent_id: &str,
+ branch_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!(
+ "v1/convai/agents/{}/branches/{}/rebase-preview",
+ agent_id, branch_id
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Rebase a branch onto the latest main branch, incorporating main's changes while preserving the branch's own changes.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `branch_id` - Unique identifier for the source branch to merge from.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .branches
+ /// .rebase(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &"agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn rebase(
+ &self,
+ agent_id: &str,
+ branch_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!(
+ "v1/convai/agents/{}/branches/{}/rebase",
+ agent_id, branch_id
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/branches/mod.rs b/elevenlabs-sdk/src/api/resources/agents/branches/mod.rs
new file mode 100644
index 0000000..368bcb9
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/branches/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_branches;
+pub use agents_branches::BranchesClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/analysis/agents_conversations_analysis.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/analysis/agents_conversations_analysis.rs
new file mode 100644
index 0000000..3d316ac
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/analysis/agents_conversations_analysis.rs
@@ -0,0 +1,118 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct AnalysisClient {
+ pub http_client: HttpClient,
+}
+
+impl AnalysisClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Run the analysis for a conversation using the agent's current evaluation criteria and data collection settings.
+ ///
+ /// # Arguments
+ ///
+ /// * `conversation_id` - ID of the conversation
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .analysis
+ /// .run(&"conversation_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn run(
+ &self,
+ conversation_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/conversations/{}/analysis/run", conversation_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Rerun a specific evaluation for a conversation.
+ ///
+ /// # Arguments
+ ///
+ /// * `conversation_id` - ID of the conversation
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .analysis
+ /// .run_evaluation(
+ /// &"conversation_id".to_string(),
+ /// &RunConversationEvaluationsRequest {
+ /// evaluation_id: "evaluation_id".to_string(),
+ /// scope: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn run_evaluation(
+ &self,
+ conversation_id: &str,
+ request: &RunConversationEvaluationsRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!(
+ "v1/convai/conversations/{}/analysis/evaluations/run",
+ conversation_id
+ ),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/analysis/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/analysis/mod.rs
new file mode 100644
index 0000000..01c270a
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/analysis/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_conversations_analysis;
+pub use agents_conversations_analysis::AnalysisClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/audio/agents_conversations_audio.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/audio/agents_conversations_audio.rs
new file mode 100644
index 0000000..e272afe
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/audio/agents_conversations_audio.rs
@@ -0,0 +1,60 @@
+use crate::{ApiError, ByteStream, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct AudioClient {
+ pub http_client: HttpClient,
+}
+
+impl AudioClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Get the audio recording of a particular conversation
+ ///
+ /// # Arguments
+ ///
+ /// * `conversation_id` - The id of the conversation you're taking the action on.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Streaming file download (use .into_bytes() to collect or stream chunks)
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .audio
+ /// .get(&"conversation_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ conversation_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_stream_request(
+ Method::GET,
+ &format!("v1/convai/conversations/{}/audio", conversation_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/audio/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/audio/mod.rs
new file mode 100644
index 0000000..3d86e10
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/audio/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_conversations_audio;
+pub use agents_conversations_audio::AudioClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/feedback/agents_conversations_feedback.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/feedback/agents_conversations_feedback.rs
new file mode 100644
index 0000000..5965177
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/feedback/agents_conversations_feedback.rs
@@ -0,0 +1,69 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct FeedbackClient {
+ pub http_client: HttpClient,
+}
+
+impl FeedbackClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Send the feedback for the given conversation
+ ///
+ /// # Arguments
+ ///
+ /// * `conversation_id` - The id of the conversation you're taking the action on.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .feedback
+ /// .create(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &ConversationFeedbackRequestModel {
+ /// feedback: Some(UserFeedbackScore::Like),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ conversation_id: &str,
+ request: &ConversationFeedbackRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/conversations/{}/feedback", conversation_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/feedback/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/feedback/mod.rs
new file mode 100644
index 0000000..1e74126
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/feedback/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_conversations_feedback;
+pub use agents_conversations_feedback::FeedbackClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/files/agents_conversations_files.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/files/agents_conversations_files.rs
new file mode 100644
index 0000000..f858f5d
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/files/agents_conversations_files.rs
@@ -0,0 +1,116 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct FilesClient {
+ pub http_client: HttpClient,
+}
+
+impl FilesClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Upload an image or PDF file for a conversation. Returns a unique file ID that can be used to reference the file in the conversation.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .files
+ /// .create(
+ /// &"conversation_id".to_string(),
+ /// &CreateRequest {
+ /// file: b"test file content".to_vec(),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ conversation_id: &str,
+ request: &CreateRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_multipart_request(
+ Method::POST,
+ &format!("v1/convai/conversations/{}/files", conversation_id),
+ request.clone().to_multipart(),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Remove a file upload from a conversation. Only possible if the file hasn't already been used in the conversation.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .files
+ /// .delete(&"conversation_id".to_string(), &"file_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ conversation_id: &str,
+ file_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!(
+ "v1/convai/conversations/{}/files/{}",
+ conversation_id, file_id
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/files/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/files/mod.rs
new file mode 100644
index 0000000..01332f5
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/files/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_conversations_files;
+pub use agents_conversations_files::FilesClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/messages/agents_conversations_messages.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/messages/agents_conversations_messages.rs
new file mode 100644
index 0000000..cba65cc
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/messages/agents_conversations_messages.rs
@@ -0,0 +1,244 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct MessagesClient {
+ pub http_client: HttpClient,
+}
+
+impl MessagesClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Search through conversation transcript messages by full-text and fuzzy search
+ ///
+ /// # Arguments
+ ///
+ /// * `text_query` - The search query text for full-text and fuzzy matching
+ /// * `agent_id` - Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.
+ /// * `visited_agent_ids` - Filter conversations where any of these agents participated. Can not exceed 50 values.
+ /// * `visited_agent_branch_ids` - Filter conversations where any of these agent branches participated. Can not exceed 50 values.
+ /// * `call_successful` - The result of the success evaluation
+ /// * `call_start_before_unix` - Unix timestamp (in seconds) to filter conversations up to this start date.
+ /// * `call_start_after_unix` - Unix timestamp (in seconds) to filter conversations after to this start date.
+ /// * `call_duration_min_secs` - Minimum call duration in seconds.
+ /// * `call_duration_max_secs` - Maximum call duration in seconds.
+ /// * `rating_max` - Maximum overall rating (1-5).
+ /// * `rating_min` - Minimum overall rating (1-5).
+ /// * `has_feedback_comment` - Filter conversations with user feedback comments.
+ /// * `user_id` - Filter conversations by the user ID who initiated them.
+ /// * `evaluation_params` - Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success
+ /// * `data_collection_params` - Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values.
+ /// * `tool_names` - Filter conversations by tool names used during the call.
+ /// * `tool_names_successful` - Filter conversations by tool names that had successful calls.
+ /// * `tool_names_errored` - Filter conversations by tool names that had errored calls.
+ /// * `main_languages` - Filter conversations by detected main language (language code).
+ /// * `exclude_statuses` - Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views.
+ /// * `termination_reasons` - Filter conversations by their stored termination_reason (metadata.termination_reason). Repeat param to match any of several.
+ /// * `page_size` - Number of results per page. Max 50.
+ /// * `summary_mode` - Whether to include transcript summaries in the response.
+ /// * `conversation_product_type` - Restrict results to a single conversation product surface.
+ /// * `branch_id` - Filter conversations by branch ID.
+ /// * `topic_ids` - Filter conversations by topic IDs assigned during topic discovery.
+ /// * `sort_by` - Sort order for search results. 'search_score' sorts by search score, 'created_at' sorts by conversation start time.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .messages
+ /// .text_search(
+ /// &TextSearchQueryRequest {
+ /// text_query: "refund policy".to_string(),
+ /// agent_id: Some("agent_id".to_string()),
+ /// visited_agent_ids: vec![Some("visited_agent_ids".to_string())],
+ /// visited_agent_branch_ids: vec![Some("visited_agent_branch_ids".to_string())],
+ /// call_successful: Some(EvaluationSuccessResult::Success),
+ /// call_start_before_unix: Some(1),
+ /// call_start_after_unix: Some(1),
+ /// call_duration_min_secs: Some(1),
+ /// call_duration_max_secs: Some(1),
+ /// rating_max: Some(1),
+ /// rating_min: Some(1),
+ /// has_feedback_comment: Some(true),
+ /// user_id: Some("user_id".to_string()),
+ /// evaluation_params: vec![Some("evaluation_params".to_string())],
+ /// data_collection_params: vec![Some("data_collection_params".to_string())],
+ /// tool_names: vec![Some("tool_names".to_string())],
+ /// tool_names_successful: vec![Some("tool_names_successful".to_string())],
+ /// tool_names_errored: vec![Some("tool_names_errored".to_string())],
+ /// main_languages: vec![Some("main_languages".to_string())],
+ /// exclude_statuses: vec![Some(
+ /// MessagesTextSearchRequestExcludeStatusesItem::Initiated,
+ /// )],
+ /// termination_reasons: vec![Some("termination_reasons".to_string())],
+ /// page_size: Some(1),
+ /// summary_mode: Some(MessagesTextSearchRequestSummaryMode::Exclude),
+ /// conversation_initiation_source: Some(ConversationInitiationSource::Unknown),
+ /// text_only: Some(true),
+ /// conversation_product_type: Some(ConversationProduct::Agents),
+ /// branch_id: Some("branch_id".to_string()),
+ /// topic_ids: vec![Some("topic_ids".to_string())],
+ /// sort_by: Some(MessageSearchSortBy::SearchScore),
+ /// cursor: Some("cursor".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn text_search(
+ &self,
+ request: &TextSearchQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/conversations/messages/text-search",
+ None,
+ QueryBuilder::new()
+ .string("text_query", request.text_query.clone())
+ .string("agent_id", request.agent_id.clone())
+ .string_array("visited_agent_ids", request.visited_agent_ids.clone())
+ .string_array(
+ "visited_agent_branch_ids",
+ request.visited_agent_branch_ids.clone(),
+ )
+ .serialize("call_successful", request.call_successful.clone())
+ .int(
+ "call_start_before_unix",
+ request.call_start_before_unix.clone(),
+ )
+ .int(
+ "call_start_after_unix",
+ request.call_start_after_unix.clone(),
+ )
+ .int(
+ "call_duration_min_secs",
+ request.call_duration_min_secs.clone(),
+ )
+ .int(
+ "call_duration_max_secs",
+ request.call_duration_max_secs.clone(),
+ )
+ .int("rating_max", request.rating_max.clone())
+ .int("rating_min", request.rating_min.clone())
+ .bool("has_feedback_comment", request.has_feedback_comment.clone())
+ .string("user_id", request.user_id.clone())
+ .string_array("evaluation_params", request.evaluation_params.clone())
+ .string_array(
+ "data_collection_params",
+ request.data_collection_params.clone(),
+ )
+ .string_array("tool_names", request.tool_names.clone())
+ .string_array(
+ "tool_names_successful",
+ request.tool_names_successful.clone(),
+ )
+ .string_array("tool_names_errored", request.tool_names_errored.clone())
+ .string_array("main_languages", request.main_languages.clone())
+ .serialize_array("exclude_statuses", request.exclude_statuses.clone())
+ .string_array("termination_reasons", request.termination_reasons.clone())
+ .int("page_size", request.page_size.clone())
+ .serialize("summary_mode", request.summary_mode.clone())
+ .serialize(
+ "conversation_initiation_source",
+ request.conversation_initiation_source.clone(),
+ )
+ .bool("text_only", request.text_only.clone())
+ .serialize(
+ "conversation_product_type",
+ request.conversation_product_type.clone(),
+ )
+ .string("branch_id", request.branch_id.clone())
+ .string_array("topic_ids", request.topic_ids.clone())
+ .serialize("sort_by", request.sort_by.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Search conversation transcripts by semantic similarity to surface relevant messages based on meaning and intent, rather than exact keyword matches
+ ///
+ /// # Arguments
+ ///
+ /// * `text_query` - The search query text for semantic similarity matching
+ /// * `agent_id` - Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.
+ /// * `page_size` - Number of results per page. Max 50.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .messages
+ /// .search(
+ /// &AgentsConversationsMessagesSearchQueryRequest {
+ /// text_query: "Customer asking to cancel and get money back".to_string(),
+ /// agent_id: Some("agent_id".to_string()),
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn search(
+ &self,
+ request: &AgentsConversationsMessagesSearchQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/conversations/messages/smart-search",
+ None,
+ QueryBuilder::new()
+ .string("text_query", request.text_query.clone())
+ .string("agent_id", request.agent_id.clone())
+ .int("page_size", request.page_size.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/messages/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/messages/mod.rs
new file mode 100644
index 0000000..5ac321d
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/messages/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_conversations_messages;
+pub use agents_conversations_messages::MessagesClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/mod.rs
new file mode 100644
index 0000000..26c0fcf
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/mod.rs
@@ -0,0 +1,563 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub mod audio;
+pub use audio::AudioClient;
+pub mod feedback;
+pub use feedback::FeedbackClient;
+pub mod messages;
+pub use messages::MessagesClient;
+pub mod tags;
+pub use tags::TagsClient;
+pub mod files;
+pub use files::FilesClient;
+pub mod topics;
+pub use topics::TopicsClient;
+pub mod analysis;
+pub use analysis::AnalysisClient;
+pub struct ConversationsClient {
+ pub http_client: HttpClient,
+ pub audio: AudioClient,
+ pub feedback: FeedbackClient,
+ pub messages: MessagesClient,
+ pub tags: TagsClient,
+ pub files: FilesClient,
+ pub topics: TopicsClient,
+ pub analysis: AnalysisClient,
+}
+
+impl ConversationsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ audio: AudioClient::new(config.clone())?,
+ feedback: FeedbackClient::new(config.clone())?,
+ messages: MessagesClient::new(config.clone())?,
+ tags: TagsClient::new(config.clone())?,
+ files: FilesClient::new(config.clone())?,
+ topics: TopicsClient::new(config.clone())?,
+ analysis: AnalysisClient::new(config.clone())?,
+ })
+ }
+
+ /// Get a signed url to start a conversation with an agent with an agent that requires authorization
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.
+ /// * `include_conversation_id` - Whether to include a conversation_id with the response. If included, the conversation_signature cannot be used again.
+ /// * `branch_id` - The ID of the branch to use
+ /// * `environment` - The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .get_signed_url(
+ /// &GetSignedURLQueryRequest {
+ /// agent_id: "agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// include_conversation_id: Some(true),
+ /// branch_id: Some("branch_id".to_string()),
+ /// environment: Some("environment".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_signed_url(
+ &self,
+ request: &GetSignedUrlQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/conversation/get-signed-url",
+ None,
+ QueryBuilder::new()
+ .string("agent_id", request.agent_id.clone())
+ .bool(
+ "include_conversation_id",
+ request.include_conversation_id.clone(),
+ )
+ .string("branch_id", request.branch_id.clone())
+ .string("environment", request.environment.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Get a WebRTC session token for real-time communication.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.
+ /// * `participant_name` - Optional custom participant name. If not provided, user ID will be used
+ /// * `branch_id` - The ID of the branch to use
+ /// * `environment` - The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .get_webrtc_token(
+ /// &GetWebrtcTokenQueryRequest {
+ /// agent_id: "agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// participant_name: Some("participant_name".to_string()),
+ /// branch_id: Some("branch_id".to_string()),
+ /// environment: Some("environment".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_webrtc_token(
+ &self,
+ request: &GetWebrtcTokenQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/conversation/token",
+ None,
+ QueryBuilder::new()
+ .string("agent_id", request.agent_id.clone())
+ .string("participant_name", request.participant_name.clone())
+ .string("branch_id", request.branch_id.clone())
+ .string("environment", request.environment.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Get all conversations of agents that user owns. With option to restrict to a specific agent.
+ ///
+ /// # Arguments
+ ///
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `agent_id` - Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.
+ /// * `visited_agent_ids` - Filter conversations where any of these agents participated. Can not exceed 50 values.
+ /// * `visited_agent_branch_ids` - Filter conversations where any of these agent branches participated. Can not exceed 50 values.
+ /// * `call_successful` - The result of the success evaluation
+ /// * `call_start_before_unix` - Unix timestamp (in seconds) to filter conversations up to this start date.
+ /// * `call_start_after_unix` - Unix timestamp (in seconds) to filter conversations after to this start date.
+ /// * `call_duration_min_secs` - Minimum call duration in seconds.
+ /// * `call_duration_max_secs` - Maximum call duration in seconds.
+ /// * `rating_max` - Maximum overall rating (1-5).
+ /// * `rating_min` - Minimum overall rating (1-5).
+ /// * `has_feedback_comment` - Filter conversations with user feedback comments.
+ /// * `user_id` - Filter conversations by the user ID who initiated them.
+ /// * `evaluation_params` - Evaluation filters. Repeat param. Format: criteria_id:result. Example: eval=value_framing:success
+ /// * `data_collection_params` - Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in|exists|missing. For in, pipe-delimit values.
+ /// * `data_collection_ids` - Data collection field IDs to include in each conversation summary. Repeat param. When omitted, data_collection_results is not returned.
+ /// * `evaluation_criteria_ids` - Evaluation criteria IDs to include in each conversation summary. Repeat param. When omitted, evaluation_criteria_results is not returned.
+ /// * `tool_names` - Filter conversations by tool names used during the call.
+ /// * `tool_names_successful` - Filter conversations by tool names that had successful calls.
+ /// * `tool_names_errored` - Filter conversations by tool names that had errored calls.
+ /// * `main_languages` - Filter conversations by detected main language (language code).
+ /// * `page_size` - How many conversations to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `summary_mode` - Whether to include transcript summaries in the response.
+ /// * `search` - Full-text or fuzzy search over transcript messages
+ /// * `conversation_product_type` - Restrict results to a single conversation product surface.
+ /// * `branch_id` - Filter conversations by branch ID.
+ /// * `topic_ids` - Filter conversations by topic IDs assigned during topic discovery.
+ /// * `exclude_statuses` - Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views.
+ /// * `tag_ids` - Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints.
+ /// * `workflow_node_entered_id` - Filter conversations to only those that entered the given node.
+ /// * `termination_reasons` - Filter conversations by their stored termination_reason (metadata.termination_reason). Repeat param to match any of several.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .list(
+ /// &AgentsConversationsListQueryRequest {
+ /// cursor: Some("cursor".to_string()),
+ /// agent_id: Some("agent_id".to_string()),
+ /// visited_agent_ids: vec![Some("visited_agent_ids".to_string())],
+ /// visited_agent_branch_ids: vec![Some("visited_agent_branch_ids".to_string())],
+ /// call_successful: Some(EvaluationSuccessResult::Success),
+ /// call_start_before_unix: Some(1),
+ /// call_start_after_unix: Some(1),
+ /// call_duration_min_secs: Some(1),
+ /// call_duration_max_secs: Some(1),
+ /// rating_max: Some(1),
+ /// rating_min: Some(1),
+ /// has_feedback_comment: Some(true),
+ /// user_id: Some("user_id".to_string()),
+ /// evaluation_params: vec![Some("evaluation_params".to_string())],
+ /// data_collection_params: vec![Some("data_collection_params".to_string())],
+ /// data_collection_ids: vec![Some("data_collection_ids".to_string())],
+ /// evaluation_criteria_ids: vec![Some("evaluation_criteria_ids".to_string())],
+ /// tool_names: vec![Some("tool_names".to_string())],
+ /// tool_names_successful: vec![Some("tool_names_successful".to_string())],
+ /// tool_names_errored: vec![Some("tool_names_errored".to_string())],
+ /// main_languages: vec![Some("main_languages".to_string())],
+ /// page_size: Some(1),
+ /// summary_mode: Some(ConversationsListRequestSummaryMode::Exclude),
+ /// search: Some("search".to_string()),
+ /// conversation_initiation_source: Some(ConversationInitiationSource::Unknown),
+ /// text_only: Some(true),
+ /// conversation_product_type: Some(ConversationProduct::Agents),
+ /// branch_id: Some("branch_id".to_string()),
+ /// topic_ids: vec![Some("topic_ids".to_string())],
+ /// exclude_statuses: vec![Some(
+ /// ConversationsListRequestExcludeStatusesItem::Initiated,
+ /// )],
+ /// tag_ids: vec![Some("tag_ids".to_string())],
+ /// workflow_node_entered_id: Some("workflow_node_entered_id".to_string()),
+ /// termination_reasons: vec![Some("termination_reasons".to_string())],
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ request: &AgentsConversationsListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/conversations",
+ None,
+ QueryBuilder::new()
+ .string("cursor", request.cursor.clone())
+ .string("agent_id", request.agent_id.clone())
+ .string_array("visited_agent_ids", request.visited_agent_ids.clone())
+ .string_array(
+ "visited_agent_branch_ids",
+ request.visited_agent_branch_ids.clone(),
+ )
+ .serialize("call_successful", request.call_successful.clone())
+ .int(
+ "call_start_before_unix",
+ request.call_start_before_unix.clone(),
+ )
+ .int(
+ "call_start_after_unix",
+ request.call_start_after_unix.clone(),
+ )
+ .int(
+ "call_duration_min_secs",
+ request.call_duration_min_secs.clone(),
+ )
+ .int(
+ "call_duration_max_secs",
+ request.call_duration_max_secs.clone(),
+ )
+ .int("rating_max", request.rating_max.clone())
+ .int("rating_min", request.rating_min.clone())
+ .bool("has_feedback_comment", request.has_feedback_comment.clone())
+ .string("user_id", request.user_id.clone())
+ .string_array("evaluation_params", request.evaluation_params.clone())
+ .string_array(
+ "data_collection_params",
+ request.data_collection_params.clone(),
+ )
+ .string_array("data_collection_ids", request.data_collection_ids.clone())
+ .string_array(
+ "evaluation_criteria_ids",
+ request.evaluation_criteria_ids.clone(),
+ )
+ .string_array("tool_names", request.tool_names.clone())
+ .string_array(
+ "tool_names_successful",
+ request.tool_names_successful.clone(),
+ )
+ .string_array("tool_names_errored", request.tool_names_errored.clone())
+ .string_array("main_languages", request.main_languages.clone())
+ .int("page_size", request.page_size.clone())
+ .serialize("summary_mode", request.summary_mode.clone())
+ .string("search", request.search.clone())
+ .serialize(
+ "conversation_initiation_source",
+ request.conversation_initiation_source.clone(),
+ )
+ .bool("text_only", request.text_only.clone())
+ .serialize(
+ "conversation_product_type",
+ request.conversation_product_type.clone(),
+ )
+ .string("branch_id", request.branch_id.clone())
+ .string_array("topic_ids", request.topic_ids.clone())
+ .serialize_array("exclude_statuses", request.exclude_statuses.clone())
+ .string_array("tag_ids", request.tag_ids.clone())
+ .string(
+ "workflow_node_entered_id",
+ request.workflow_node_entered_id.clone(),
+ )
+ .string_array("termination_reasons", request.termination_reasons.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// 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.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.
+ /// * `reference` - A Slack message URL or a Zendesk ticket URL.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .resolve(
+ /// &ResolveQueryRequest {
+ /// agent_id: "agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// reference: "https://your-domain.zendesk.com/agent/tickets/12345".to_string(),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn resolve(
+ &self,
+ request: &ResolveQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/conversations/resolve",
+ None,
+ QueryBuilder::new()
+ .string("agent_id", request.agent_id.clone())
+ .string("reference", request.reference.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Get the details of a particular conversation
+ ///
+ /// # Arguments
+ ///
+ /// * `conversation_id` - The id of the conversation you're taking the action on.
+ /// * `format` - Response format. Defaults to 'json'. Set to 'opentelemetry' for an OTLP-compatible trace payload using the same structure as the post-call webhook.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .get(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &AgentsConversationsGetQueryRequest {
+ /// format: Some(ConversationsGetRequestFormat::JSON),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ conversation_id: &str,
+ request: &AgentsConversationsGetQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/conversations/{}", conversation_id),
+ None,
+ QueryBuilder::new()
+ .serialize("format", request.format.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Delete a particular conversation
+ ///
+ /// # Arguments
+ ///
+ /// * `conversation_id` - The id of the conversation you're taking the action on.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .delete(&"21m00Tcm4TlvDq8ikWAM".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ conversation_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/conversations/{}", conversation_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get SIP messages associated with a conversation's phone call
+ ///
+ /// # Arguments
+ ///
+ /// * `conversation_id` - The id of the conversation you're taking the action on.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .get_sip_messages(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &AgentsConversationsGetSipMessagesQueryRequest {
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_sip_messages(
+ &self,
+ conversation_id: &str,
+ request: &AgentsConversationsGetSipMessagesQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/conversations/{}/sip-messages", conversation_id),
+ None,
+ QueryBuilder::new()
+ .int("page_size", request.page_size.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/tags/agents_conversations_tags.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/tags/agents_conversations_tags.rs
new file mode 100644
index 0000000..0dad39e
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/tags/agents_conversations_tags.rs
@@ -0,0 +1,366 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct TagsClient {
+ pub http_client: HttpClient,
+}
+
+impl TagsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Assign one or more conversation tags to a conversation. Tags that are already assigned are ignored. Tags must belong to the same workspace.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .tags
+ /// .assign(
+ /// &"conversation_id".to_string(),
+ /// &AssignConversationTagsRequestModel {
+ /// tag_ids: vec!["tag_ids".to_string()],
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn assign(
+ &self,
+ conversation_id: &str,
+ request: &AssignConversationTagsRequestModel,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/conversations/{}/tags", conversation_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Remove a single conversation tag from a conversation.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .tags
+ /// .unassign(&"conversation_id".to_string(), &"tag_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn unassign(
+ &self,
+ conversation_id: &str,
+ tag_id: &str,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!(
+ "v1/convai/conversations/{}/tags/{}",
+ conversation_id, tag_id
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// List conversation tags for the workspace, ordered by most recently created first.
+ ///
+ /// # Arguments
+ ///
+ /// * `page_size` - How many conversation tags to return. Can not exceed 100.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .tags
+ /// .list(
+ /// &AgentsConversationsTagsListQueryRequest {
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ request: &AgentsConversationsTagsListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/tags",
+ None,
+ QueryBuilder::new()
+ .int("page_size", request.page_size.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Create a new conversation tag for the workspace.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .tags
+ /// .create(
+ /// &CreateConversationTagRequestModel {
+ /// title: "title".to_string(),
+ /// description: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ request: &CreateConversationTagRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/tags",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get a conversation tag by ID.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .tags
+ /// .get(&"tag_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ tag_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/tags/{}", tag_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Delete a conversation tag. Restricted to the tag owner or a workspace admin.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .tags
+ /// .delete(&"tag_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ tag_id: &str,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/tags/{}", tag_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .tags
+ /// .update(
+ /// &"tag_id".to_string(),
+ /// &PatchConversationTagRequestModel {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ tag_id: &str,
+ request: &PatchConversationTagRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!("v1/convai/tags/{}", tag_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/tags/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/tags/mod.rs
new file mode 100644
index 0000000..ecff2bd
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/tags/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_conversations_tags;
+pub use agents_conversations_tags::TagsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/topics/agents_conversations_topics.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/topics/agents_conversations_topics.rs
new file mode 100644
index 0000000..446f2bb
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/topics/agents_conversations_topics.rs
@@ -0,0 +1,75 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct TopicsClient {
+ pub http_client: HttpClient,
+}
+
+impl TopicsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Returns the latest topic discovery run results for a given agent.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - ID of the agent
+ /// * `from_unix_secs` - Start of the window to view topics for. When set with to_unix_secs, per-day topics in the range are aggregated together.
+ /// * `to_unix_secs` - End of the window to view topics for.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .conversations
+ /// .topics
+ /// .get(
+ /// &"agent_id".to_string(),
+ /// &AgentsConversationsTopicsGetQueryRequest {
+ /// from_unix_secs: Some(1),
+ /// to_unix_secs: Some(1),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ agent_id: &str,
+ request: &AgentsConversationsTopicsGetQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/agents/{}/topics", agent_id),
+ None,
+ QueryBuilder::new()
+ .int("from_unix_secs", request.from_unix_secs.clone())
+ .int("to_unix_secs", request.to_unix_secs.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/conversations/topics/mod.rs b/elevenlabs-sdk/src/api/resources/agents/conversations/topics/mod.rs
new file mode 100644
index 0000000..ed5d555
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/conversations/topics/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_conversations_topics;
+pub use agents_conversations_topics::TopicsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/dashboard/mod.rs b/elevenlabs-sdk/src/api/resources/agents/dashboard/mod.rs
new file mode 100644
index 0000000..a33d210
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/dashboard/mod.rs
@@ -0,0 +1,18 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient};
+
+pub mod settings;
+pub use settings::SettingsClient2;
+pub struct DashboardClient {
+ pub http_client: HttpClient,
+ pub settings: SettingsClient2,
+}
+
+impl DashboardClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ settings: SettingsClient2::new(config.clone())?,
+ })
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/dashboard/settings/agents_dashboard_settings.rs b/elevenlabs-sdk/src/api/resources/agents/dashboard/settings/agents_dashboard_settings.rs
new file mode 100644
index 0000000..b696008
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/dashboard/settings/agents_dashboard_settings.rs
@@ -0,0 +1,104 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct SettingsClient2 {
+ pub http_client: HttpClient,
+}
+
+impl SettingsClient2 {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Retrieve Convai dashboard settings for the workspace
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client.agents.dashboard.settings.get(None).await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/settings/dashboard",
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Update Convai dashboard settings for the workspace
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .dashboard
+ /// .settings
+ /// .update(
+ /// &PatchConvAiDashboardSettingsRequest {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ request: &PatchConvAiDashboardSettingsRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ "v1/convai/settings/dashboard",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/dashboard/settings/mod.rs b/elevenlabs-sdk/src/api/resources/agents/dashboard/settings/mod.rs
new file mode 100644
index 0000000..ef7d06a
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/dashboard/settings/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_dashboard_settings;
+pub use agents_dashboard_settings::SettingsClient2;
diff --git a/elevenlabs-sdk/src/api/resources/agents/deployments/agents_deployments.rs b/elevenlabs-sdk/src/api/resources/agents/deployments/agents_deployments.rs
new file mode 100644
index 0000000..f615ee4
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/deployments/agents_deployments.rs
@@ -0,0 +1,78 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct DeploymentsClient {
+ pub http_client: HttpClient,
+}
+
+impl DeploymentsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Create a new deployment for an agent
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .deployments
+ /// .create(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &BodyCreateOrUpdateDeploymentsV1ConvaiAgentsAgentIDDeploymentsPost {
+ /// deployment_request: AgentDeploymentRequest {
+ /// requests: vec![AgentDeploymentRequestItem {
+ /// branch_id: "agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// deployment_strategy: AgentDeploymentPercentageStrategy {
+ /// r#type: Some("percentage".to_string()),
+ /// traffic_percentage: 0.5,
+ /// ..Default::default()
+ /// },
+ /// ..Default::default()
+ /// }],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ agent_id: &str,
+ request: &BodyCreateOrUpdateDeploymentsV1ConvaiAgentsAgentIdDeploymentsPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agents/{}/deployments", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/deployments/mod.rs b/elevenlabs-sdk/src/api/resources/agents/deployments/mod.rs
new file mode 100644
index 0000000..559ad11
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/deployments/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_deployments;
+pub use agents_deployments::DeploymentsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/drafts/agents_drafts.rs b/elevenlabs-sdk/src/api/resources/agents/drafts/agents_drafts.rs
new file mode 100644
index 0000000..541bfbb
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/drafts/agents_drafts.rs
@@ -0,0 +1,379 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct DraftsClient {
+ pub http_client: HttpClient,
+}
+
+impl DraftsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Create a new draft for an agent
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `branch_id` - The ID of the agent branch to use
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .drafts
+ /// .create(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &BodyCreateAgentDraftV1ConvaiAgentsAgentIDDraftsPost {
+ /// branch_id: "agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// conversation_config: HashMap::from([(
+ /// "key".to_string(),
+ /// serde_json::json!("value"),
+ /// )]),
+ /// platform_settings: HashMap::from([("key".to_string(), serde_json::json!("value"))]),
+ /// workflow: AgentWorkflowRequestModel {
+ /// edges: Some(HashMap::from([
+ /// (
+ /// "entry_to_tool_a".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "entry_node".to_string(),
+ /// target: "tool_node_a".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// (
+ /// "start_to_entry".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "start_node".to_string(),
+ /// target: "entry_node".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// (
+ /// "tool_a_to_failure".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "tool_node_a".to_string(),
+ /// target: "failure_node".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// (
+ /// "tool_a_to_tool_b".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "tool_node_a".to_string(),
+ /// target: "tool_node_b".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// (
+ /// "tool_b_to_agent_transfer".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "tool_node_b".to_string(),
+ /// target: "success_transfer".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// (
+ /// "tool_b_to_conversation".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "tool_node_b".to_string(),
+ /// target: "success_conversation".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// (
+ /// "tool_b_to_end".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "tool_node_b".to_string(),
+ /// target: "success_end".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// (
+ /// "tool_b_to_phone".to_string(),
+ /// WorkflowEdgeModelInput {
+ /// source: "tool_node_b".to_string(),
+ /// target: "success_phone".to_string(),
+ /// forward_condition: Some(
+ /// WorkflowEdgeModelInputForwardCondition::Expression {
+ /// data: WorkflowExpressionConditionModelInput {
+ /// label: None,
+ /// expression: AstNodeInput::AndOperator {
+ /// data: AstAndOperatorNodeInput {
+ /// children: vec![],
+ /// ..Default::default()
+ /// },
+ /// },
+ /// },
+ /// },
+ /// ),
+ /// ..Default::default()
+ /// },
+ /// ),
+ /// ])),
+ /// nodes: Some(HashMap::from([
+ /// (
+ /// "entry_node".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "failure_node".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "start_node".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "success_conversation".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "success_end".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "success_phone".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "success_transfer".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "tool_node_a".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// (
+ /// "tool_node_b".to_string(),
+ /// AgentWorkflowRequestModelNodesValue::End {
+ /// data: WorkflowEndNodeModelInput {
+ /// ..Default::default()
+ /// },
+ /// },
+ /// ),
+ /// ])),
+ /// ..Default::default()
+ /// },
+ /// name: "name".to_string(),
+ /// tags: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ agent_id: &str,
+ request: &BodyCreateAgentDraftV1ConvaiAgentsAgentIdDraftsPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agents/{}/drafts", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ QueryBuilder::new()
+ .string("branch_id", request.branch_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Delete a draft for an agent
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `branch_id` - The ID of the agent branch to use
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .drafts
+ /// .delete(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &AgentsDraftsDeleteQueryRequest {
+ /// branch_id: "agtbrch_8901k4t9z5defmb8vh3e9361y7nj".to_string(),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ agent_id: &str,
+ request: &AgentsDraftsDeleteQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/agents/{}/drafts", agent_id),
+ None,
+ QueryBuilder::new()
+ .string("branch_id", request.branch_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/drafts/mod.rs b/elevenlabs-sdk/src/api/resources/agents/drafts/mod.rs
new file mode 100644
index 0000000..9d6f228
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/drafts/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_drafts;
+pub use agents_drafts::DraftsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/exotel/agents_exotel.rs b/elevenlabs-sdk/src/api/resources/agents/exotel/agents_exotel.rs
new file mode 100644
index 0000000..a1beaf7
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/exotel/agents_exotel.rs
@@ -0,0 +1,68 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct ExotelClient {
+ pub http_client: HttpClient,
+}
+
+impl ExotelClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Handle an outbound call via Exotel Connect API
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .exotel
+ /// .outbound_call(
+ /// &BodyHandleAnOutboundCallViaExotelV1ConvaiExotelOutboundCallPost {
+ /// agent_id: "agent_id".to_string(),
+ /// agent_phone_number_id: "agent_phone_number_id".to_string(),
+ /// to_number: "to_number".to_string(),
+ /// conversation_initiation_client_data: None,
+ /// telephony_call_config: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn outbound_call(
+ &self,
+ request: &BodyHandleAnOutboundCallViaExotelV1ConvaiExotelOutboundCallPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/exotel/outbound-call",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/exotel/mod.rs b/elevenlabs-sdk/src/api/resources/agents/exotel/mod.rs
new file mode 100644
index 0000000..732e537
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/exotel/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_exotel;
+pub use agents_exotel::ExotelClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/crawl_jobs/agents_knowledge_base_crawl_jobs.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/crawl_jobs/agents_knowledge_base_crawl_jobs.rs
new file mode 100644
index 0000000..dc72353
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/crawl_jobs/agents_knowledge_base_crawl_jobs.rs
@@ -0,0 +1,223 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct CrawlJobsClient {
+ pub http_client: HttpClient,
+}
+
+impl CrawlJobsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Get a list of ongoing and recent crawl jobs for the user.
+ ///
+ /// # Arguments
+ ///
+ /// * `include_job_ids` - Ids of additional crawl jobs to retrieve
+ /// * `page_size` - How many documents to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .crawl_jobs
+ /// .list(
+ /// &AgentsKnowledgeBaseCrawlJobsListQueryRequest {
+ /// include_job_ids: vec![Some("include_job_ids".to_string())],
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ request: &AgentsKnowledgeBaseCrawlJobsListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/knowledge-base/crawl",
+ None,
+ QueryBuilder::new()
+ .string_array("include_job_ids", request.include_job_ids.clone())
+ .int("page_size", request.page_size.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Create a crawl job to crawl the given URL with specified depth and page limits.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .crawl_jobs
+ /// .create(
+ /// &BodyCreateCrawlJobV1ConvaiKnowledgeBaseCrawlPost {
+ /// url: "url".to_string(),
+ /// max_depth: None,
+ /// max_pages: None,
+ /// pattern: None,
+ /// sitemap_urls: None,
+ /// parent_folder_id: None,
+ /// enable_auto_sync: None,
+ /// auto_remove: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ request: &BodyCreateCrawlJobV1ConvaiKnowledgeBaseCrawlPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/crawl",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get details about a specific crawl job including status and progress.
+ ///
+ /// # Arguments
+ ///
+ /// * `crawl_job_id` - The id of the crawl job to retrieve
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .crawl_jobs
+ /// .get(&"crawl_job_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ crawl_job_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/knowledge-base/crawl/{}", crawl_job_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Cancel a crawl job and delete all associated documents and folders.
+ ///
+ /// # Arguments
+ ///
+ /// * `crawl_job_id` - The id of the crawl job to retrieve
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .crawl_jobs
+ /// .cancel(&"crawl_job_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn cancel(
+ &self,
+ crawl_job_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/knowledge-base/crawl/{}/cancel", crawl_job_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/crawl_jobs/mod.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/crawl_jobs/mod.rs
new file mode 100644
index 0000000..b24c71f
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/crawl_jobs/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_knowledge_base_crawl_jobs;
+pub use agents_knowledge_base_crawl_jobs::CrawlJobsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/document/agents_knowledge_base_document.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/document/agents_knowledge_base_document.rs
new file mode 100644
index 0000000..e127c23
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/document/agents_knowledge_base_document.rs
@@ -0,0 +1,167 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct DocumentClient {
+ pub http_client: HttpClient,
+}
+
+impl DocumentClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// 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.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .document
+ /// .update_file(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &UpdateFileRequest {
+ /// file: b"test file content".to_vec(),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update_file(
+ &self,
+ documentation_id: &str,
+ request: &UpdateFileRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_multipart_request(
+ Method::PATCH,
+ &format!("v1/convai/knowledge-base/{}/update-file", documentation_id),
+ request.clone().to_multipart(),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Manually refresh a URL document by re-fetching its content from the source URL.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .document
+ /// .refresh(&"21m00Tcm4TlvDq8ikWAM".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn refresh(
+ &self,
+ documentation_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/knowledge-base/{}/refresh", documentation_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// In case the document is not RAG indexed, it triggers rag indexing task, otherwise it just returns the current status.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .document
+ /// .compute_rag_index(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &RagIndexRequestModel {
+ /// model: EmbeddingModelEnum::E5Mistral7BInstruct,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn compute_rag_index(
+ &self,
+ documentation_id: &str,
+ request: &RagIndexRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/knowledge-base/{}/rag-index", documentation_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/document/mod.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/document/mod.rs
new file mode 100644
index 0000000..bd9d389
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/document/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_knowledge_base_document;
+pub use agents_knowledge_base_document::DocumentClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunk/agents_knowledge_base_documents_chunk.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunk/agents_knowledge_base_documents_chunk.rs
new file mode 100644
index 0000000..5873310
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunk/agents_knowledge_base_documents_chunk.rs
@@ -0,0 +1,79 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct ChunkClient {
+ pub http_client: HttpClient,
+}
+
+impl ChunkClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Get details about a specific documentation part used by RAG.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `chunk_id` - The id of a document RAG chunk from the knowledge base.
+ /// * `embedding_model` - The embedding model used to retrieve the chunk.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .chunk
+ /// .get(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &"chunk_id".to_string(),
+ /// &AgentsKnowledgeBaseDocumentsChunkGetQueryRequest {
+ /// embedding_model: Some(EmbeddingModelEnum::E5Mistral7BInstruct),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ documentation_id: &str,
+ chunk_id: &str,
+ request: &AgentsKnowledgeBaseDocumentsChunkGetQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!(
+ "v1/convai/knowledge-base/{}/chunk/{}",
+ documentation_id, chunk_id
+ ),
+ None,
+ QueryBuilder::new()
+ .serialize("embedding_model", request.embedding_model.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunk/mod.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunk/mod.rs
new file mode 100644
index 0000000..46361ed
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunk/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_knowledge_base_documents_chunk;
+pub use agents_knowledge_base_documents_chunk::ChunkClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunks/agents_knowledge_base_documents_chunks.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunks/agents_knowledge_base_documents_chunks.rs
new file mode 100644
index 0000000..46c5522
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunks/agents_knowledge_base_documents_chunks.rs
@@ -0,0 +1,78 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct ChunksClient {
+ pub http_client: HttpClient,
+}
+
+impl ChunksClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Get all RAG chunks for a specific knowledge base document.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `embedding_model` - The embedding model used to retrieve the chunk.
+ /// * `page_size` - How many documents to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .chunks
+ /// .list(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &AgentsKnowledgeBaseDocumentsChunksListQueryRequest {
+ /// embedding_model: EmbeddingModelEnum::E5Mistral7BInstruct,
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ documentation_id: &str,
+ request: &AgentsKnowledgeBaseDocumentsChunksListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/knowledge-base/{}/chunks", documentation_id),
+ None,
+ QueryBuilder::new()
+ .serialize("embedding_model", Some(request.embedding_model.clone()))
+ .int("page_size", request.page_size.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunks/mod.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunks/mod.rs
new file mode 100644
index 0000000..abe724f
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/chunks/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_knowledge_base_documents_chunks;
+pub use agents_knowledge_base_documents_chunks::ChunksClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/mod.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/mod.rs
new file mode 100644
index 0000000..c790ca8
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/mod.rs
@@ -0,0 +1,790 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+use std::collections::HashMap;
+
+pub mod summaries;
+pub use summaries::SummariesClient2;
+pub mod chunk;
+pub use chunk::ChunkClient;
+pub mod chunks;
+pub use chunks::ChunksClient;
+pub struct DocumentsClient {
+ pub http_client: HttpClient,
+ pub summaries: SummariesClient2,
+ pub chunk: ChunkClient,
+ pub chunks: ChunksClient,
+}
+
+impl DocumentsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ summaries: SummariesClient2::new(config.clone())?,
+ chunk: ChunkClient::new(config.clone())?,
+ chunks: ChunksClient::new(config.clone())?,
+ })
+ }
+
+ /// Create a knowledge base document generated by scraping the given webpage.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .create_from_url(
+ /// &BodyCreateURLDocumentV1ConvaiKnowledgeBaseURLPost {
+ /// url: "url".to_string(),
+ /// name: None,
+ /// parent_folder_id: None,
+ /// enable_auto_sync: None,
+ /// auto_remove: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create_from_url(
+ &self,
+ request: &BodyCreateUrlDocumentV1ConvaiKnowledgeBaseUrlPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/url",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Create a knowledge base document generated form the uploaded file.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .create_from_file(
+ /// &CreateFromFileRequest {
+ /// file: b"test file content".to_vec(),
+ /// name: None,
+ /// parent_folder_id: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create_from_file(
+ &self,
+ request: &CreateFromFileRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_multipart_request(
+ Method::POST,
+ "v1/convai/knowledge-base/file",
+ request.clone().to_multipart(),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Create a knowledge base document containing the provided text.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .create_from_text(
+ /// &BodyCreateTextDocumentV1ConvaiKnowledgeBaseTextPost {
+ /// text: "text".to_string(),
+ /// name: None,
+ /// parent_folder_id: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create_from_text(
+ &self,
+ request: &BodyCreateTextDocumentV1ConvaiKnowledgeBaseTextPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/text",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Create a folder used for grouping documents together.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .create_folder(
+ /// &BodyCreateFolderV1ConvaiKnowledgeBaseFolderPost {
+ /// name: "name".to_string(),
+ /// parent_folder_id: None,
+ /// enable_auto_sync: None,
+ /// auto_remove: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create_folder(
+ &self,
+ request: &BodyCreateFolderV1ConvaiKnowledgeBaseFolderPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/folder",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get details about a specific documentation making up the agent's knowledge base
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .get(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &AgentsKnowledgeBaseDocumentsGetQueryRequest {
+ /// agent_id: Some("agent_id".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ documentation_id: &str,
+ request: &AgentsKnowledgeBaseDocumentsGetQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/knowledge-base/{}", documentation_id),
+ None,
+ QueryBuilder::new()
+ .string("agent_id", request.agent_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Delete a document or folder from the knowledge base.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `force` - 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.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .delete(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &AgentsKnowledgeBaseDocumentsDeleteQueryRequest {
+ /// force: Some(true),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ documentation_id: &str,
+ request: &AgentsKnowledgeBaseDocumentsDeleteQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/knowledge-base/{}", documentation_id),
+ None,
+ QueryBuilder::new()
+ .bool("force", request.force.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Update the name and/or content of a document.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .update(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &BodyUpdateDocumentV1ConvaiKnowledgeBaseDocumentationIDPatch {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ documentation_id: &str,
+ request: &BodyUpdateDocumentV1ConvaiKnowledgeBaseDocumentationIdPatch,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!("v1/convai/knowledge-base/{}", documentation_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get a list of agents depending on this knowledge base document
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `dependent_type` - Type of dependent agents to return.
+ /// * `page_size` - How many documents to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .get_agents(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &GetAgentsQueryRequest {
+ /// dependent_type: Some(KnowledgeBaseDependentType::Direct),
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_agents(
+ &self,
+ documentation_id: &str,
+ request: &GetAgentsQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!(
+ "v1/convai/knowledge-base/{}/dependent-agents",
+ documentation_id
+ ),
+ None,
+ QueryBuilder::new()
+ .serialize("dependent_type", request.dependent_type.clone())
+ .int("page_size", request.page_size.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Get a list of agents depending on any of the given knowledge base documents.
+ ///
+ /// # Arguments
+ ///
+ /// * `dependent_type` - Type of dependent agents to return.
+ /// * `page_size` - How many documents to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .get_bulk_agents(
+ /// &BodyGetDependentAgentsForMultipleDocumentsV1ConvaiKnowledgeBaseDependentAgentsPost {
+ /// dependent_type: Some(KnowledgeBaseDependentType::Direct),
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// document_ids: vec![
+ /// "21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// "31m00Tcm4TlvDq8ikWBM".to_string(),
+ /// ],
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_bulk_agents(
+ &self,
+ request: &BodyGetDependentAgentsForMultipleDocumentsV1ConvaiKnowledgeBaseDependentAgentsPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/dependent-agents",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ QueryBuilder::new()
+ .serialize("dependent_type", request.dependent_type.clone())
+ .int("page_size", request.page_size.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Get the entire content of a document from the knowledge base
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Text response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .get_content(&"documentation_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_content(
+ &self,
+ documentation_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/knowledge-base/{}/content", documentation_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get a signed URL to download the original source file of a file-type document from the knowledge base
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .get_source_file_url(&"21m00Tcm4TlvDq8ikWAM".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_source_file_url(
+ &self,
+ documentation_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!(
+ "v1/convai/knowledge-base/{}/source-file-url",
+ documentation_id
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Moves the entity from one folder to another.
+ ///
+ /// # Arguments
+ ///
+ /// * `document_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .move_(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &BodyMoveEntityToFolderV1ConvaiKnowledgeBaseDocumentIDMovePost {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn move_(
+ &self,
+ document_id: &str,
+ request: &BodyMoveEntityToFolderV1ConvaiKnowledgeBaseDocumentIdMovePost,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/knowledge-base/{}/move", document_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Moves multiple entities from one folder to another.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .bulk_move(
+ /// &BodyBulkMoveEntitiesToFolderV1ConvaiKnowledgeBaseBulkMovePost {
+ /// document_ids: vec![
+ /// "21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// "31m00Tcm4TlvDq8ikWBM".to_string(),
+ /// ],
+ /// move_to: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn bulk_move(
+ &self,
+ request: &BodyBulkMoveEntitiesToFolderV1ConvaiKnowledgeBaseBulkMovePost,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/bulk-move",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Delete multiple documents or folders from the knowledge base. Each id succeeds or fails independently.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .bulk_delete(
+ /// &BodyBulkDeleteKnowledgeBaseDocumentsV1ConvaiKnowledgeBaseBulkDeletePost {
+ /// document_ids: vec![
+ /// "21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// "31m00Tcm4TlvDq8ikWBM".to_string(),
+ /// ],
+ /// force: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn bulk_delete(
+ &self,
+ request: &BodyBulkDeleteKnowledgeBaseDocumentsV1ConvaiKnowledgeBaseBulkDeletePost,
+ options: Option,
+ ) -> Result, ApiError> {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/bulk-delete",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/summaries/agents_knowledge_base_documents_summaries.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/summaries/agents_knowledge_base_documents_summaries.rs
new file mode 100644
index 0000000..edbb2d4
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/summaries/agents_knowledge_base_documents_summaries.rs
@@ -0,0 +1,73 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+use std::collections::HashMap;
+
+pub struct SummariesClient2 {
+ pub http_client: HttpClient,
+}
+
+impl SummariesClient2 {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Gets multiple knowledge base document summaries by their IDs.
+ ///
+ /// # Arguments
+ ///
+ /// * `document_ids` - The ids of knowledge base documents.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .documents
+ /// .summaries
+ /// .get(
+ /// &AgentsKnowledgeBaseDocumentsSummariesGetQueryRequest {
+ /// document_ids: vec![
+ /// Some("21m00Tcm4TlvDq8ikWAM".to_string()),
+ /// Some("31n11Udm5UmwEr9jkXBN".to_string()),
+ /// ],
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ request: &AgentsKnowledgeBaseDocumentsSummariesGetQueryRequest,
+ options: Option,
+ ) -> Result, ApiError> {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/knowledge-base/summaries",
+ None,
+ QueryBuilder::new()
+ .string_array("document_ids", request.document_ids.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/summaries/mod.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/summaries/mod.rs
new file mode 100644
index 0000000..66cd369
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/documents/summaries/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_knowledge_base_documents_summaries;
+pub use agents_knowledge_base_documents_summaries::SummariesClient2;
diff --git a/elevenlabs-sdk/src/api/resources/agents/knowledge_base/mod.rs b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/mod.rs
new file mode 100644
index 0000000..674a9c5
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/knowledge_base/mod.rs
@@ -0,0 +1,271 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+use std::collections::HashMap;
+
+pub mod documents;
+pub use documents::DocumentsClient;
+pub mod crawl_jobs;
+pub use crawl_jobs::CrawlJobsClient;
+pub mod document;
+pub use document::DocumentClient;
+pub struct KnowledgeBaseClient {
+ pub http_client: HttpClient,
+ pub documents: DocumentsClient,
+ pub crawl_jobs: CrawlJobsClient,
+ pub document: DocumentClient,
+}
+
+impl KnowledgeBaseClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ documents: DocumentsClient::new(config.clone())?,
+ crawl_jobs: CrawlJobsClient::new(config.clone())?,
+ document: DocumentClient::new(config.clone())?,
+ })
+ }
+
+ /// Returns the number of pages in the agent's knowledge base.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .size(&"agent_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn size(
+ &self,
+ agent_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/agent/{}/knowledge-base/size", agent_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get a list of available knowledge base documents
+ ///
+ /// # Arguments
+ ///
+ /// * `page_size` - How many documents to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `search` - If specified, the endpoint returns only such knowledge base documents whose names start with this string.
+ /// * `show_only_owned_documents` - 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.
+ /// * `created_by_user_id` - 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.
+ /// * `types` - If present, the endpoint will return only documents of the given types.
+ /// * `parent_folder_id` - If set, the endpoint will return only documents that are direct children of the given folder.
+ /// * `ancestor_folder_id` - If set, the endpoint will return only documents that are descendants of the given folder.
+ /// * `folders_first` - Whether folders should be returned first in the list of documents.
+ /// * `sort_direction` - The direction to sort the results
+ /// * `sort_by` - The field to sort the results by
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .list(
+ /// &AgentsKnowledgeBaseListQueryRequest {
+ /// page_size: Some(1),
+ /// search: Some("search".to_string()),
+ /// show_only_owned_documents: Some(true),
+ /// created_by_user_id: Some("created_by_user_id".to_string()),
+ /// types: vec![Some(KnowledgeBaseDocumentType::File)],
+ /// parent_folder_id: Some("parent_folder_id".to_string()),
+ /// ancestor_folder_id: Some("ancestor_folder_id".to_string()),
+ /// folders_first: Some(true),
+ /// sort_direction: Some(SortDirection::Asc),
+ /// sort_by: Some(KnowledgeBaseSortBy::Name),
+ /// cursor: Some("cursor".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ request: &AgentsKnowledgeBaseListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/knowledge-base",
+ None,
+ QueryBuilder::new()
+ .int("page_size", request.page_size.clone())
+ .string("search", request.search.clone())
+ .bool(
+ "show_only_owned_documents",
+ request.show_only_owned_documents.clone(),
+ )
+ .string("created_by_user_id", request.created_by_user_id.clone())
+ .serialize_array("types", request.types.clone())
+ .string("parent_folder_id", request.parent_folder_id.clone())
+ .string("ancestor_folder_id", request.ancestor_folder_id.clone())
+ .bool("folders_first", request.folders_first.clone())
+ .serialize("sort_direction", request.sort_direction.clone())
+ .serialize("sort_by", request.sort_by.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Retrieves and/or creates RAG indexes for multiple knowledge base documents in a single request. Maximum 100 items per request.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .get_or_create_rag_indexes(
+ /// &BodyComputeRagIndexesInBatchV1ConvaiKnowledgeBaseRagIndexPost {
+ /// items: vec![GetOrCreateRagIndexRequestModel {
+ /// document_id: "document_id".to_string(),
+ /// create_if_missing: true,
+ /// model: EmbeddingModelEnum::E5Mistral7BInstruct,
+ /// }],
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_or_create_rag_indexes(
+ &self,
+ request: &BodyComputeRagIndexesInBatchV1ConvaiKnowledgeBaseRagIndexPost,
+ options: Option,
+ ) -> Result, ApiError> {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/knowledge-base/rag-index",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Fuzzy text search over knowledge base document content
+ ///
+ /// # Arguments
+ ///
+ /// * `query` - The search query text
+ /// * `page_size` - How many documents to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `types` - If present, the endpoint will return only documents of the given types.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .knowledge_base
+ /// .search(
+ /// &AgentsKnowledgeBaseSearchQueryRequest {
+ /// query: "query".to_string(),
+ /// page_size: Some(1),
+ /// types: vec![Some(KnowledgeBaseDocumentType::File)],
+ /// cursor: Some("cursor".to_string()),
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn search(
+ &self,
+ request: &AgentsKnowledgeBaseSearchQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/knowledge-base/search",
+ None,
+ QueryBuilder::new()
+ .structured_query("query", request.query.clone())
+ .int("page_size", request.page_size.clone())
+ .serialize_array("types", request.types.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/link/agents_link.rs b/elevenlabs-sdk/src/api/resources/agents/link/agents_link.rs
new file mode 100644
index 0000000..5a01706
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/link/agents_link.rs
@@ -0,0 +1,60 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct LinkClient {
+ pub http_client: HttpClient,
+}
+
+impl LinkClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Get the current link used to share the agent with others
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .link
+ /// .get(&"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ agent_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/agents/{}/link", agent_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/link/mod.rs b/elevenlabs-sdk/src/api/resources/agents/link/mod.rs
new file mode 100644
index 0000000..7d173fe
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/link/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_link;
+pub use agents_link::LinkClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/llm/agents_llm.rs b/elevenlabs-sdk/src/api/resources/agents/llm/agents_llm.rs
new file mode 100644
index 0000000..2d3b6a2
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/llm/agents_llm.rs
@@ -0,0 +1,48 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct LlmClient {
+ pub http_client: HttpClient,
+}
+
+impl LlmClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// 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.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client.agents.llm.list(None).await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(Method::GET, "v1/convai/llm/list", None, None, options)
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/llm/mod.rs b/elevenlabs-sdk/src/api/resources/agents/llm/mod.rs
new file mode 100644
index 0000000..0bd21bc
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/llm/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_llm;
+pub use agents_llm::LlmClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/llm_usage/agents_llm_usage.rs b/elevenlabs-sdk/src/api/resources/agents/llm_usage/agents_llm_usage.rs
new file mode 100644
index 0000000..c3c5cd1
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/llm_usage/agents_llm_usage.rs
@@ -0,0 +1,66 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct LlmUsageClient {
+ pub http_client: HttpClient,
+}
+
+impl LlmUsageClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Returns a list of LLM models and the expected cost for using them based on the provided values.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .llm_usage
+ /// .calculate(
+ /// &LlmUsageCalculatorPublicRequestModel {
+ /// prompt_length: 1,
+ /// number_of_pages: 1,
+ /// rag_enabled: true,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn calculate(
+ &self,
+ request: &LlmUsageCalculatorPublicRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/llm-usage/calculate",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/llm_usage/mod.rs b/elevenlabs-sdk/src/api/resources/agents/llm_usage/mod.rs
new file mode 100644
index 0000000..73644c7
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/llm_usage/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_llm_usage;
+pub use agents_llm_usage::LlmUsageClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/approval_policy/agents_mcp_servers_approval_policy.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/approval_policy/agents_mcp_servers_approval_policy.rs
new file mode 100644
index 0000000..ae4ca78
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/approval_policy/agents_mcp_servers_approval_policy.rs
@@ -0,0 +1,68 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct ApprovalPolicyClient {
+ pub http_client: HttpClient,
+}
+
+impl ApprovalPolicyClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Update the approval policy configuration for an MCP server. DEPRECATED: Use PATCH /mcp-servers/{id} endpoint instead.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .approval_policy
+ /// .update(
+ /// &"mcp_server_id".to_string(),
+ /// &McpApprovalPolicyUpdateRequestModel {
+ /// approval_policy: McpApprovalPolicy::AutoApproveAll,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ mcp_server_id: &str,
+ request: &McpApprovalPolicyUpdateRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!("v1/convai/mcp-servers/{}/approval-policy", mcp_server_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/approval_policy/mod.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/approval_policy/mod.rs
new file mode 100644
index 0000000..1bfb0bb
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/approval_policy/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_mcp_servers_approval_policy;
+pub use agents_mcp_servers_approval_policy::ApprovalPolicyClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/mod.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/mod.rs
new file mode 100644
index 0000000..caad28d
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/mod.rs
@@ -0,0 +1,275 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub mod tools;
+pub use tools::ToolsClient2;
+pub mod approval_policy;
+pub use approval_policy::ApprovalPolicyClient;
+pub mod tool_approvals;
+pub use tool_approvals::ToolApprovalsClient;
+pub mod tool_configs;
+pub use tool_configs::ToolConfigsClient;
+pub struct McpServersClient {
+ pub http_client: HttpClient,
+ pub tools: ToolsClient2,
+ pub approval_policy: ApprovalPolicyClient,
+ pub tool_approvals: ToolApprovalsClient,
+ pub tool_configs: ToolConfigsClient,
+}
+
+impl McpServersClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ tools: ToolsClient2::new(config.clone())?,
+ approval_policy: ApprovalPolicyClient::new(config.clone())?,
+ tool_approvals: ToolApprovalsClient::new(config.clone())?,
+ tool_configs: ToolConfigsClient::new(config.clone())?,
+ })
+ }
+
+ /// Retrieve all MCP server configurations available in the workspace.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client.agents.mcp_servers.list(None).await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(Method::GET, "v1/convai/mcp-servers", None, None, options)
+ .await
+ }
+
+ /// Create a new MCP server configuration in the workspace.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .create(
+ /// &McpServerRequestModel {
+ /// config: McpServerConfigInput {
+ /// approval_policy: None,
+ /// tool_approval_hashes: None,
+ /// transport: None,
+ /// url: McpServerConfigInputURL::String("url".to_string()),
+ /// secret_token: None,
+ /// request_headers: None,
+ /// auth_connection: None,
+ /// name: "name".to_string(),
+ /// description: None,
+ /// force_pre_tool_speech: None,
+ /// pre_tool_speech: None,
+ /// disable_interruptions: None,
+ /// interruption_mode: None,
+ /// tool_call_sound: None,
+ /// tool_call_sound_behavior: None,
+ /// execution_mode: None,
+ /// response_timeout_secs: None,
+ /// tool_config_overrides: None,
+ /// disable_compression: None,
+ /// },
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ request: &McpServerRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/mcp-servers",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Retrieve a specific MCP server configuration from the workspace.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .get(&"mcp_server_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ mcp_server_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/mcp-servers/{}", mcp_server_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Delete a specific MCP server configuration from the workspace.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .delete(&"mcp_server_id".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ mcp_server_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/mcp-servers/{}", mcp_server_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Update the configuration settings for an MCP server.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .update(
+ /// &"mcp_server_id".to_string(),
+ /// &McpServerConfigUpdateRequestModel {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ mcp_server_id: &str,
+ request: &McpServerConfigUpdateRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!("v1/convai/mcp-servers/{}", mcp_server_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_approvals/agents_mcp_servers_tool_approvals.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_approvals/agents_mcp_servers_tool_approvals.rs
new file mode 100644
index 0000000..a9e04c9
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_approvals/agents_mcp_servers_tool_approvals.rs
@@ -0,0 +1,122 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, RequestOptions};
+use reqwest::Method;
+
+pub struct ToolApprovalsClient {
+ pub http_client: HttpClient,
+}
+
+impl ToolApprovalsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Add approval for a specific MCP tool when using per-tool approval mode.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .tool_approvals
+ /// .create(
+ /// &"mcp_server_id".to_string(),
+ /// &McpToolAddApprovalRequestModel {
+ /// tool_name: "tool_name".to_string(),
+ /// tool_description: "tool_description".to_string(),
+ /// input_schema: None,
+ /// approval_policy: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ mcp_server_id: &str,
+ request: &McpToolAddApprovalRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/mcp-servers/{}/tool-approvals", mcp_server_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Remove approval for a specific MCP tool when using per-tool approval mode.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `tool_name` - Name of the MCP tool to remove approval for.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .tool_approvals
+ /// .delete(&"mcp_server_id".to_string(), &"tool_name".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ mcp_server_id: &str,
+ tool_name: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!(
+ "v1/convai/mcp-servers/{}/tool-approvals/{}",
+ mcp_server_id, tool_name
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_approvals/mod.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_approvals/mod.rs
new file mode 100644
index 0000000..0139060
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_approvals/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_mcp_servers_tool_approvals;
+pub use agents_mcp_servers_tool_approvals::ToolApprovalsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_configs/agents_mcp_servers_tool_configs.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_configs/agents_mcp_servers_tool_configs.rs
new file mode 100644
index 0000000..c306713
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_configs/agents_mcp_servers_tool_configs.rs
@@ -0,0 +1,248 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct ToolConfigsClient {
+ pub http_client: HttpClient,
+}
+
+impl ToolConfigsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Create configuration overrides for a specific MCP tool.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `environment` - 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.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .tool_configs
+ /// .create(
+ /// &"mcp_server_id".to_string(),
+ /// &McpToolConfigOverrideCreateRequestModel {
+ /// environment: Some("environment".to_string()),
+ /// tool_name: "tool_name".to_string(),
+ /// force_pre_tool_speech: None,
+ /// pre_tool_speech: None,
+ /// disable_interruptions: None,
+ /// interruption_mode: None,
+ /// tool_call_sound: None,
+ /// tool_call_sound_behavior: None,
+ /// execution_mode: None,
+ /// response_timeout_secs: None,
+ /// assignments: None,
+ /// input_overrides: None,
+ /// response_mocks: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ mcp_server_id: &str,
+ request: &McpToolConfigOverrideCreateRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/mcp-servers/{}/tool-configs", mcp_server_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ QueryBuilder::new()
+ .string("environment", request.environment.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Retrieve configuration overrides for a specific MCP tool.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `tool_name` - Name of the MCP tool to retrieve config overrides for.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .tool_configs
+ /// .get(&"mcp_server_id".to_string(), &"tool_name".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ mcp_server_id: &str,
+ tool_name: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!(
+ "v1/convai/mcp-servers/{}/tool-configs/{}",
+ mcp_server_id, tool_name
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Remove configuration overrides for a specific MCP tool.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `tool_name` - Name of the MCP tool to remove config overrides for.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .tool_configs
+ /// .delete(&"mcp_server_id".to_string(), &"tool_name".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ mcp_server_id: &str,
+ tool_name: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!(
+ "v1/convai/mcp-servers/{}/tool-configs/{}",
+ mcp_server_id, tool_name
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Update configuration overrides for a specific MCP tool.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `tool_name` - Name of the MCP tool to update config overrides for.
+ /// * `environment` - 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.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .tool_configs
+ /// .update(
+ /// &"mcp_server_id".to_string(),
+ /// &"tool_name".to_string(),
+ /// &McpToolConfigOverrideUpdateRequestModel {
+ /// environment: Some("environment".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ mcp_server_id: &str,
+ tool_name: &str,
+ request: &McpToolConfigOverrideUpdateRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!(
+ "v1/convai/mcp-servers/{}/tool-configs/{}",
+ mcp_server_id, tool_name
+ ),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ QueryBuilder::new()
+ .string("environment", request.environment.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_configs/mod.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_configs/mod.rs
new file mode 100644
index 0000000..7647940
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tool_configs/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_mcp_servers_tool_configs;
+pub use agents_mcp_servers_tool_configs::ToolConfigsClient;
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tools/agents_mcp_servers_tools.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tools/agents_mcp_servers_tools.rs
new file mode 100644
index 0000000..6e936c8
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tools/agents_mcp_servers_tools.rs
@@ -0,0 +1,72 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct ToolsClient2 {
+ pub http_client: HttpClient,
+}
+
+impl ToolsClient2 {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Retrieve all tools available for a specific MCP server configuration.
+ ///
+ /// # Arguments
+ ///
+ /// * `mcp_server_id` - ID of the MCP Server.
+ /// * `environment` - 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.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .mcp_servers
+ /// .tools
+ /// .list(
+ /// &"mcp_server_id".to_string(),
+ /// &AgentsMcpServersToolsListQueryRequest {
+ /// environment: Some("environment".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ mcp_server_id: &str,
+ request: &AgentsMcpServersToolsListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/mcp-servers/{}/tools", mcp_server_id),
+ None,
+ QueryBuilder::new()
+ .string("environment", request.environment.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tools/mod.rs b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tools/mod.rs
new file mode 100644
index 0000000..556b27f
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mcp_servers/tools/mod.rs
@@ -0,0 +1,2 @@
+pub mod agents_mcp_servers_tools;
+pub use agents_mcp_servers_tools::ToolsClient2;
diff --git a/elevenlabs-sdk/src/api/resources/agents/mod.rs b/elevenlabs-sdk/src/api/resources/agents/mod.rs
new file mode 100644
index 0000000..6466efa
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/mod.rs
@@ -0,0 +1,839 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub mod conversations;
+pub use conversations::ConversationsClient;
+pub mod twilio;
+pub use twilio::TwilioClient;
+pub mod exotel;
+pub use exotel::ExotelClient;
+pub mod whatsapp;
+pub use whatsapp::WhatsappClient;
+pub mod summaries;
+pub use summaries::SummariesClient;
+pub mod widget;
+pub use widget::WidgetClient;
+pub mod link;
+pub use link::LinkClient;
+pub mod knowledge_base;
+pub use knowledge_base::KnowledgeBaseClient;
+pub mod tests;
+pub use tests::TestsClient;
+pub mod users;
+pub use users::UsersClient;
+pub mod phone_numbers;
+pub use phone_numbers::PhoneNumbersClient;
+pub mod llm_usage;
+pub use llm_usage::LlmUsageClient;
+pub mod llm;
+pub use llm::LlmClient;
+pub mod tools;
+pub use tools::ToolsClient;
+pub mod settings;
+pub use settings::SettingsClient;
+pub mod secrets;
+pub use secrets::SecretsClient;
+pub mod batch_calls;
+pub use batch_calls::BatchCallsClient;
+pub mod sip_trunk;
+pub use sip_trunk::SipTrunkClient;
+pub mod mcp_servers;
+pub use mcp_servers::McpServersClient;
+pub mod whatsapp_accounts;
+pub use whatsapp_accounts::WhatsappAccountsClient;
+pub mod branches;
+pub use branches::BranchesClient;
+pub mod versions;
+pub use versions::VersionsClient;
+pub mod deployments;
+pub use deployments::DeploymentsClient;
+pub mod drafts;
+pub use drafts::DraftsClient;
+pub mod agents;
+pub use agents::AgentsClient2;
+pub mod analytics;
+pub use analytics::AnalyticsClient;
+pub mod dashboard;
+pub use dashboard::DashboardClient;
+pub struct AgentsClient {
+ pub http_client: HttpClient,
+ pub conversations: ConversationsClient,
+ pub twilio: TwilioClient,
+ pub exotel: ExotelClient,
+ pub whatsapp: WhatsappClient,
+ pub summaries: SummariesClient,
+ pub widget: WidgetClient,
+ pub link: LinkClient,
+ pub knowledge_base: KnowledgeBaseClient,
+ pub tests: TestsClient,
+ pub users: UsersClient,
+ pub phone_numbers: PhoneNumbersClient,
+ pub llm_usage: LlmUsageClient,
+ pub llm: LlmClient,
+ pub tools: ToolsClient,
+ pub settings: SettingsClient,
+ pub secrets: SecretsClient,
+ pub batch_calls: BatchCallsClient,
+ pub sip_trunk: SipTrunkClient,
+ pub mcp_servers: McpServersClient,
+ pub whatsapp_accounts: WhatsappAccountsClient,
+ pub branches: BranchesClient,
+ pub versions: VersionsClient,
+ pub deployments: DeploymentsClient,
+ pub drafts: DraftsClient,
+ pub agents: AgentsClient2,
+ pub analytics: AnalyticsClient,
+ pub dashboard: DashboardClient,
+}
+
+impl AgentsClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ conversations: ConversationsClient::new(config.clone())?,
+ twilio: TwilioClient::new(config.clone())?,
+ exotel: ExotelClient::new(config.clone())?,
+ whatsapp: WhatsappClient::new(config.clone())?,
+ summaries: SummariesClient::new(config.clone())?,
+ widget: WidgetClient::new(config.clone())?,
+ link: LinkClient::new(config.clone())?,
+ knowledge_base: KnowledgeBaseClient::new(config.clone())?,
+ tests: TestsClient::new(config.clone())?,
+ users: UsersClient::new(config.clone())?,
+ phone_numbers: PhoneNumbersClient::new(config.clone())?,
+ llm_usage: LlmUsageClient::new(config.clone())?,
+ llm: LlmClient::new(config.clone())?,
+ tools: ToolsClient::new(config.clone())?,
+ settings: SettingsClient::new(config.clone())?,
+ secrets: SecretsClient::new(config.clone())?,
+ batch_calls: BatchCallsClient::new(config.clone())?,
+ sip_trunk: SipTrunkClient::new(config.clone())?,
+ mcp_servers: McpServersClient::new(config.clone())?,
+ whatsapp_accounts: WhatsappAccountsClient::new(config.clone())?,
+ branches: BranchesClient::new(config.clone())?,
+ versions: VersionsClient::new(config.clone())?,
+ deployments: DeploymentsClient::new(config.clone())?,
+ drafts: DraftsClient::new(config.clone())?,
+ agents: AgentsClient2::new(config.clone())?,
+ analytics: AnalyticsClient::new(config.clone())?,
+ dashboard: DashboardClient::new(config.clone())?,
+ })
+ }
+
+ /// Create an agent from a config object
+ ///
+ /// # Arguments
+ ///
+ /// * `enable_versioning` - Deprecated: all agents are versioned. This parameter is ignored.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .create(
+ /// &BodyCreateAgentV1ConvaiAgentsCreatePost {
+ /// enable_versioning: Some(true),
+ /// conversation_config: ConversationalConfig {
+ /// ..Default::default()
+ /// },
+ /// platform_settings: None,
+ /// workflow: None,
+ /// name: None,
+ /// tags: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ request: &BodyCreateAgentV1ConvaiAgentsCreatePost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/agents/create",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ QueryBuilder::new()
+ .bool("enable_versioning", request.enable_versioning.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Retrieve config for an agent
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `version_id` - The ID of the agent version to use
+ /// * `branch_id` - The ID of the branch to use
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .get(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &AgentsGetQueryRequest {
+ /// version_id: Some("version_id".to_string()),
+ /// branch_id: Some("branch_id".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ agent_id: &str,
+ request: &AgentsGetQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/agents/{}", agent_id),
+ None,
+ QueryBuilder::new()
+ .string("version_id", request.version_id.clone())
+ .string("branch_id", request.branch_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Delete an agent
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .delete(&"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ agent_id: &str,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/agents/{}", agent_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Patches an Agent settings
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `enable_versioning_if_not_enabled` - Deprecated: all agents are versioned. This parameter is ignored.
+ /// * `branch_id` - The ID of the branch to use
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .update(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &UpdateAgentRequest {
+ /// enable_versioning_if_not_enabled: Some(true),
+ /// branch_id: Some("branch_id".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ agent_id: &str,
+ request: &UpdateAgentRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!("v1/convai/agents/{}", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ QueryBuilder::new()
+ .bool(
+ "enable_versioning_if_not_enabled",
+ request.enable_versioning_if_not_enabled.clone(),
+ )
+ .string("branch_id", request.branch_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Returns a list of your agents and their metadata.
+ ///
+ /// # Arguments
+ ///
+ /// * `page_size` - How many Agents to return at maximum. Can not exceed 100, defaults to 30.
+ /// * `search` - Search by agents name.
+ /// * `archived` - Filter agents by archived status
+ /// * `show_only_owned_agents` - 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.
+ /// * `created_by_user_id` - 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.
+ /// * `sort_direction` - The direction to sort the results
+ /// * `sort_by` - The field to sort the results by
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .list(
+ /// &AgentsListQueryRequest {
+ /// page_size: Some(1),
+ /// search: Some("search".to_string()),
+ /// archived: Some(true),
+ /// show_only_owned_agents: Some(true),
+ /// created_by_user_id: Some("created_by_user_id".to_string()),
+ /// sort_direction: Some(SortDirection::Asc),
+ /// sort_by: Some(AgentSortBy::Name),
+ /// cursor: Some("cursor".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ request: &AgentsListQueryRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/agents",
+ None,
+ QueryBuilder::new()
+ .int("page_size", request.page_size.clone())
+ .string("search", request.search.clone())
+ .bool("archived", request.archived.clone())
+ .bool(
+ "show_only_owned_agents",
+ request.show_only_owned_agents.clone(),
+ )
+ .string("created_by_user_id", request.created_by_user_id.clone())
+ .serialize("sort_direction", request.sort_direction.clone())
+ .serialize("sort_by", request.sort_by.clone())
+ .string("cursor", request.cursor.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Create a new agent by duplicating an existing one
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .duplicate(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &BodyDuplicateAgentV1ConvaiAgentsAgentIDDuplicatePost {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn duplicate(
+ &self,
+ agent_id: &str,
+ request: &BodyDuplicateAgentV1ConvaiAgentsAgentIdDuplicatePost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agents/{}/duplicate", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Deprecated. 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.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .simulate_conversation(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &BodySimulatesAConversationV1ConvaiAgentsAgentIDSimulateConversationPost {
+ /// simulation_specification: ConversationSimulationSpecification {
+ /// simulated_user_config: AgentConfig {
+ /// first_message: Some("Hello, how can I help you today?".to_string()),
+ /// language: Some("en".to_string()),
+ /// disable_first_message_interruptions: Some(false),
+ /// ..Default::default()
+ /// },
+ /// ..Default::default()
+ /// },
+ /// extra_evaluation_criteria: None,
+ /// new_turns_limit: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn simulate_conversation(
+ &self,
+ agent_id: &str,
+ request: &BodySimulatesAConversationV1ConvaiAgentsAgentIdSimulateConversationPost,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agents/{}/simulate-conversation", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Deprecated. 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.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// Empty response
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .simulate_conversation_stream(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &BodySimulatesAConversationStreamV1ConvaiAgentsAgentIDSimulateConversationStreamPost {
+ /// simulation_specification: ConversationSimulationSpecification {
+ /// simulated_user_config: AgentConfig {
+ /// first_message: Some("Hello, how can I help you today?".to_string()),
+ /// language: Some("en".to_string()),
+ /// disable_first_message_interruptions: Some(false),
+ /// ..Default::default()
+ /// },
+ /// ..Default::default()
+ /// },
+ /// extra_evaluation_criteria: None,
+ /// new_turns_limit: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn simulate_conversation_stream(
+ &self,
+ agent_id: &str,
+ request: &BodySimulatesAConversationStreamV1ConvaiAgentsAgentIdSimulateConversationStreamPost,
+ options: Option,
+ ) -> Result<(), ApiError> {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agents/{}/simulate-conversation/stream", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Run selected tests on the agent with provided configuration. If the agent configuration is provided, it will be used to override default agent configuration.
+ ///
+ /// # Arguments
+ ///
+ /// * `agent_id` - The id of an agent. This is returned on agent creation.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .run_tests(
+ /// &"agent_3701k3ttaq12ewp8b7qv5rfyszkz".to_string(),
+ /// &RunAgentTestsRequestModel {
+ /// tests: vec![SingleTestRunRequestModel {
+ /// test_id: "test_id".to_string(),
+ /// ..Default::default()
+ /// }],
+ /// agent_config_override: None,
+ /// branch_id: None,
+ /// repeat_count: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn run_tests(
+ &self,
+ agent_id: &str,
+ request: &RunAgentTestsRequestModel,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ &format!("v1/convai/agents/{}/run-tests", agent_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Upload a file or webpage URL to create a knowledge base document.
After creating the document, update the agent's knowledge base by calling [Update agent](/docs/api-reference/agents/update).
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .add_to_knowledge_base(
+ /// &AddToKnowledgeBaseRequest {
+ /// agent_id: Some("agent_id".to_string()),
+ /// file: b"test file content".to_vec(),
+ /// name: None,
+ /// url: None,
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn add_to_knowledge_base(
+ &self,
+ request: &AddToKnowledgeBaseRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_multipart_request(
+ Method::POST,
+ "v1/convai/knowledge-base",
+ request.clone().to_multipart(),
+ QueryBuilder::new()
+ .string("agent_id", request.agent_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Provides total size and other information of RAG indexes used by knowledgebase documents
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client.agents.rag_index_overview(None).await;
+ /// }
+ /// ```
+ pub async fn rag_index_overview(
+ &self,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/knowledge-base/rag-index",
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Provides information about all RAG indexes of the specified knowledgebase document.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .get_document_rag_indexes(&"21m00Tcm4TlvDq8ikWAM".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_document_rag_indexes(
+ &self,
+ documentation_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/knowledge-base/{}/rag-index", documentation_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Delete RAG index for the knowledgebase document.
+ ///
+ /// # Arguments
+ ///
+ /// * `documentation_id` - The id of a document from the knowledge base. This is returned on document addition.
+ /// * `rag_index_id` - The id of RAG index of document from the knowledge base.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .delete_document_rag_index(
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// &"21m00Tcm4TlvDq8ikWAM".to_string(),
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete_document_rag_index(
+ &self,
+ documentation_id: &str,
+ rag_index_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!(
+ "v1/convai/knowledge-base/{}/rag-index/{}",
+ documentation_id, rag_index_id
+ ),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+}
diff --git a/elevenlabs-sdk/src/api/resources/agents/phone_numbers/agents_phone_numbers.rs b/elevenlabs-sdk/src/api/resources/agents/phone_numbers/agents_phone_numbers.rs
new file mode 100644
index 0000000..e0a58c5
--- /dev/null
+++ b/elevenlabs-sdk/src/api/resources/agents/phone_numbers/agents_phone_numbers.rs
@@ -0,0 +1,330 @@
+use crate::api::*;
+use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
+use reqwest::Method;
+
+pub struct PhoneNumbersClient {
+ pub http_client: HttpClient,
+}
+
+impl PhoneNumbersClient {
+ pub fn new(config: ClientConfig) -> Result {
+ Ok(Self {
+ http_client: HttpClient::new(config.clone())?,
+ })
+ }
+
+ /// Retrieve all Phone Numbers
+ ///
+ /// # Arguments
+ ///
+ /// * `provider` - Filter by telephony provider
+ /// * `agent_id` - Filter by assigned agent ID
+ /// * `branch_id` - Filter by assigned branch ID
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .phone_numbers
+ /// .list(
+ /// &AgentsPhoneNumbersListQueryRequest {
+ /// provider: Some(TelephonyProvider::Twilio),
+ /// agent_id: Some("agent_id".to_string()),
+ /// branch_id: Some("branch_id".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn list(
+ &self,
+ request: &AgentsPhoneNumbersListQueryRequest,
+ options: Option,
+ ) -> Result, ApiError> {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ "v1/convai/phone-numbers",
+ None,
+ QueryBuilder::new()
+ .serialize("provider", request.provider.clone())
+ .string("agent_id", request.agent_id.clone())
+ .string("branch_id", request.branch_id.clone())
+ .build(),
+ options,
+ )
+ .await
+ }
+
+ /// Import Phone Number from provider configuration (Twilio, Exotel, or SIP trunk)
+ ///
+ /// # Arguments
+ ///
+ /// * `request` - Create Phone Request Information
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .phone_numbers
+ /// .create(
+ /// &PhoneNumbersCreateRequestBody::Twilio {
+ /// data: CreateTwilioPhoneNumberRequest {
+ /// phone_number: "phone_number".to_string(),
+ /// label: "label".to_string(),
+ /// sid: "sid".to_string(),
+ /// token: "token".to_string(),
+ /// ..Default::default()
+ /// },
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn create(
+ &self,
+ request: &PhoneNumbersCreateRequestBody,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::POST,
+ "v1/convai/phone-numbers",
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Retrieve Phone Number details by ID
+ ///
+ /// # Arguments
+ ///
+ /// * `phone_number_id` - The phone number ID. This is returned when a phone number is imported.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .phone_numbers
+ /// .get(&"TeaqRRdTcIfIu2i7BYfT".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get(
+ &self,
+ phone_number_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::GET,
+ &format!("v1/convai/phone-numbers/{}", phone_number_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Delete Phone Number by ID
+ ///
+ /// # Arguments
+ ///
+ /// * `phone_number_id` - The phone number ID. This is returned when a phone number is imported.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .phone_numbers
+ /// .delete(&"TeaqRRdTcIfIu2i7BYfT".to_string(), None)
+ /// .await;
+ /// }
+ /// ```
+ pub async fn delete(
+ &self,
+ phone_number_id: &str,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::DELETE,
+ &format!("v1/convai/phone-numbers/{}", phone_number_id),
+ None,
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Update assigned agent of a phone number
+ ///
+ /// # Arguments
+ ///
+ /// * `phone_number_id` - The phone number ID. This is returned when a phone number is imported.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .phone_numbers
+ /// .update(
+ /// &"TeaqRRdTcIfIu2i7BYfT".to_string(),
+ /// &UpdatePhoneNumberRequest {
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn update(
+ &self,
+ phone_number_id: &str,
+ request: &UpdatePhoneNumberRequest,
+ options: Option,
+ ) -> Result {
+ self.http_client
+ .execute_request(
+ Method::PATCH,
+ &format!("v1/convai/phone-numbers/{}", phone_number_id),
+ Some(serde_json::to_value(request).map_err(ApiError::Serialization)?),
+ None,
+ options,
+ )
+ .await
+ }
+
+ /// Get SIP messages for a phone number
+ ///
+ /// # Arguments
+ ///
+ /// * `phone_number_id` - The phone number ID. This is returned when a phone number is imported.
+ /// * `cursor` - Used for fetching next page. Cursor is returned in the response.
+ /// * `options` - Additional request options such as headers, timeout, etc.
+ ///
+ /// # Returns
+ ///
+ /// JSON response from the API
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use elevenlabs_sdk::prelude::*;
+ ///
+ /// #[tokio::main]
+ /// async fn main() {
+ /// let config = ClientConfig {
+ /// ..Default::default()
+ /// };
+ /// let client = ElevenlabsClient::new(config).expect("Failed to build client");
+ /// client
+ /// .agents
+ /// .phone_numbers
+ /// .get_sip_messages(
+ /// &"TeaqRRdTcIfIu2i7BYfT".to_string(),
+ /// &AgentsPhoneNumbersGetSipMessagesQueryRequest {
+ /// page_size: Some(1),
+ /// cursor: Some("cursor".to_string()),
+ /// ..Default::default()
+ /// },
+ /// None,
+ /// )
+ /// .await;
+ /// }
+ /// ```
+ pub async fn get_sip_messages(
+ &self,
+ phone_number_id: &str,
+ request: &AgentsPhoneNumbersGetSipMessagesQueryRequest,
+ options: Option,
+ ) -> Result