diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index 7748d5731..c594ac47c 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -167,7 +167,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -201,7 +203,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -245,7 +249,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -438,7 +444,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -472,7 +480,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -516,7 +526,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -743,7 +755,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -777,7 +791,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -849,6 +865,286 @@ ] } }, + "/call/{id}/mono-recording": { + "get": { + "operationId": "CallArtifactController_monoRecordingDownload", + "summary": "Download Call Mono Recording", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Call ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "302": { + "description": "Redirect to a short-lived presigned URL for the recording." + }, + "401": { + "description": "Unauthorized — missing or invalid API token." + }, + "404": { + "description": "Artifact not found." + } + }, + "tags": [ + "Calls" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/call/{id}/stereo-recording": { + "get": { + "operationId": "CallArtifactController_stereoRecordingDownload", + "summary": "Download Call Stereo Recording", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Call ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "302": { + "description": "Redirect to a short-lived presigned URL for the recording." + }, + "401": { + "description": "Unauthorized — missing or invalid API token." + }, + "404": { + "description": "Artifact not found." + } + }, + "tags": [ + "Calls" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/call/{id}/video-recording": { + "get": { + "operationId": "CallArtifactController_videoRecordingDownload", + "summary": "Download Call Video Recording", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Call ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "302": { + "description": "Redirect to a short-lived presigned URL for the video." + }, + "401": { + "description": "Unauthorized — missing or invalid API token." + }, + "404": { + "description": "Artifact not found." + } + }, + "tags": [ + "Calls" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/call/{id}/customer-recording": { + "get": { + "operationId": "CallArtifactController_customerRecordingDownload", + "summary": "Download Call Customer Recording", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Call ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "302": { + "description": "Redirect to a short-lived presigned URL for the recording." + }, + "401": { + "description": "Unauthorized — missing or invalid API token." + }, + "404": { + "description": "Artifact not found." + } + }, + "tags": [ + "Calls" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/call/{id}/assistant-recording": { + "get": { + "operationId": "CallArtifactController_assistantRecordingDownload", + "summary": "Download Call Assistant Recording", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Call ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "302": { + "description": "Redirect to a short-lived presigned URL for the recording." + }, + "401": { + "description": "Unauthorized — missing or invalid API token." + }, + "404": { + "description": "Artifact not found." + } + }, + "tags": [ + "Calls" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/call/{id}/pcap": { + "get": { + "operationId": "CallArtifactController_pcapDownload", + "summary": "Download Call Packet Capture (pcap)", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Call ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "302": { + "description": "Redirect to a short-lived presigned URL for the pcap file." + }, + "401": { + "description": "Unauthorized — missing or invalid API token." + }, + "404": { + "description": "Artifact not found." + } + }, + "tags": [ + "Calls" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/call/{id}/call-logs": { + "get": { + "operationId": "CallArtifactController_callLogsDownload", + "summary": "Download Call Logs", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Call ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "302": { + "description": "Redirect to a short-lived presigned URL for the log file." + }, + "401": { + "description": "Unauthorized — missing or invalid API token." + }, + "404": { + "description": "Artifact not found." + } + }, + "tags": [ + "Calls" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, "/chat": { "get": { "operationId": "ChatController_listChats", @@ -932,6 +1228,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -1316,6 +1626,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -1439,7 +1763,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -1473,7 +1799,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -1517,7 +1845,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -1776,6 +2106,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -1899,7 +2243,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -1933,7 +2279,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -1977,7 +2325,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -2294,6 +2644,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -2417,7 +2781,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -2483,7 +2849,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -2590,7 +2958,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -3185,7 +3555,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -3344,7 +3716,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -3633,7 +4007,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -3827,7 +4203,16 @@ "get": { "operationId": "FileController_findAll", "summary": "List Files", - "parameters": [], + "parameters": [ + { + "name": "purpose", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "", @@ -3862,7 +4247,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -3896,7 +4283,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -3940,7 +4329,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -4013,6 +4404,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -4171,7 +4576,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -4205,7 +4612,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } }, @@ -4257,7 +4666,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -4450,6 +4861,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -4573,7 +4998,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -4665,7 +5092,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -4721,7 +5150,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -4779,7 +5210,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -4970,6 +5403,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -5093,7 +5540,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -5137,7 +5586,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -5171,7 +5622,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -5207,7 +5660,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -5241,7 +5696,9 @@ "name": "id", "required": true, "in": "path", + "description": "The unique identifier for the resource.", "schema": { + "format": "uuid", "type": "string" } } @@ -5342,6 +5799,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -5606,6 +6077,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -5883,6 +6368,20 @@ "type": "string" } }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "schema": { + "enum": [ + "createdAt", + "duration", + "cost" + ], + "type": "string" + } + }, { "name": "limit", "required": false, @@ -6308,14 +6807,15 @@ { "$ref": "#/components/schemas/FallbackSonioxTranscriber", "title": "Soniox" + }, + { + "$ref": "#/components/schemas/FallbackXaiTranscriber", + "title": "xAI" } ] } } - }, - "required": [ - "transcribers" - ] + } }, "AssemblyAITranscriber": { "type": "object", @@ -7008,7 +7508,8 @@ "base-voicemail", "base-video", "whisper", - "flux-general-en" + "flux-general-en", + "flux-general-multi" ] }, { @@ -7023,8 +7524,11 @@ "ar", "az", "ba", + "be", "bg", + "bn", "br", + "bs", "ca", "cs", "da", @@ -7054,6 +7558,7 @@ "he", "hi", "hi-Latn", + "hr", "hu", "id", "is", @@ -7067,6 +7572,7 @@ "lt", "lv", "mk", + "mr", "ms", "multi", "nl", @@ -7088,8 +7594,10 @@ "sv-SE", "ta", "taq", + "te", "th", "th-TH", + "tl", "tr", "tt", "uk", @@ -7125,6 +7633,29 @@ "description": "If set to true, Deepgram will replace profanity in transcripts with surrounding asterisks, e.g. \"f***\".\n\n@default false", "example": false }, + "redaction": { + "type": "array", + "description": "Enables redaction of sensitive information from transcripts.\n\nOptions include:\n- \"pci\": Redacts credit card numbers, expiration dates, and CVV.\n- \"pii\": Redacts personally identifiable information (names, locations, identifying numbers, etc.).\n- \"phi\": Redacts protected health information (medical conditions, drugs, injuries, etc.).\n- \"numbers\": Redacts numerical and identifying entities (dates, account numbers, SSNs, etc.).\n\nMultiple values can be provided to redact different categories simultaneously.\nRedacted content is replaced with entity labels like [CREDIT_CARD_1], [SSN_1], etc.\n\nSee https://developers.deepgram.com/docs/redaction for details.", + "enum": [ + "pci", + "pii", + "phi", + "numbers" + ], + "example": [ + "pci", + "phi" + ], + "items": { + "type": "string", + "enum": [ + "pci", + "pii", + "phi", + "numbers" + ] + } + }, "confidenceThreshold": { "type": "number", "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", @@ -7132,13 +7663,6 @@ "maximum": 1, "example": 0.4 }, - "eagerEotThreshold": { - "type": "number", - "description": "Eager end-of-turn confidence required to fire a eager end-of-turn event. Setting a value here will enable EagerEndOfTurn and SpeechResumed events. It is disabled by default. Only used with Flux models.", - "minimum": 0, - "maximum": 1, - "example": 0.3 - }, "eotThreshold": { "type": "number", "description": "End-of-turn confidence required to finish a turn. Only used with Flux models.\n\n@default 0.7", @@ -7153,6 +7677,17 @@ "maximum": 10000, "example": 5000 }, + "languages": { + "description": "Language hints to bias Flux Multilingual (`flux-general-multi`) toward specific languages.\nProvide BCP-47 language codes (e.g. \"en\", \"es\", \"fr\"). Multiple hints can be given for\nmultilingual or code-switching scenarios. Omit for auto-detection. Only used with `flux-general-multi`.", + "example": [ + "en", + "es" + ], + "type": "array", + "items": { + "type": "string" + } + }, "keywords": { "description": "These keywords are passed to the transcription model to help it pick up use-case specific words. Anything that may not be a common word, like your company name, should be added here.", "type": "array", @@ -7201,6 +7736,7 @@ "description": "This is the model that will be used for the transcription.", "oneOf": [ { + "type": "string", "enum": [ "scribe_v1", "scribe_v2", @@ -7484,6 +8020,7 @@ "description": "This is the Gladia model that will be used. Default is 'fast'", "oneOf": [ { + "type": "string", "enum": [ "fast", "accurate", @@ -7611,109 +8148,112 @@ ] }, "languages": { - "type": "string", + "type": "array", "description": "Defines the languages to use for the transcription. Required when languageBehaviour is 'manual'.", - "enum": [ - "af", - "sq", - "am", - "ar", - "hy", - "as", - "az", - "ba", - "eu", - "be", - "bn", - "bs", - "br", - "bg", - "ca", - "zh", - "hr", - "cs", - "da", - "nl", - "en", - "et", - "fo", - "fi", - "fr", - "gl", - "ka", - "de", - "el", - "gu", - "ht", - "ha", - "haw", - "he", - "hi", - "hu", - "is", - "id", - "it", - "ja", - "jv", - "kn", - "kk", - "km", - "ko", - "lo", - "la", - "lv", - "ln", - "lt", - "lb", - "mk", - "mg", - "ms", - "ml", - "mt", - "mi", - "mr", - "mn", - "my", - "ne", - "no", - "nn", - "oc", - "ps", - "fa", - "pl", - "pt", - "pa", - "ro", - "ru", - "sa", - "sr", - "sn", - "sd", - "si", - "sk", - "sl", - "so", - "es", - "su", - "sw", - "sv", - "tl", - "tg", - "ta", - "tt", - "te", - "th", - "bo", - "tr", - "tk", - "uk", - "ur", - "uz", - "vi", - "cy", - "yi", - "yo" - ] + "items": { + "type": "string", + "enum": [ + "af", + "sq", + "am", + "ar", + "hy", + "as", + "az", + "ba", + "eu", + "be", + "bn", + "bs", + "br", + "bg", + "ca", + "zh", + "hr", + "cs", + "da", + "nl", + "en", + "et", + "fo", + "fi", + "fr", + "gl", + "ka", + "de", + "el", + "gu", + "ht", + "ha", + "haw", + "he", + "hi", + "hu", + "is", + "id", + "it", + "ja", + "jv", + "kn", + "kk", + "km", + "ko", + "lo", + "la", + "lv", + "ln", + "lt", + "lb", + "mk", + "mg", + "ms", + "ml", + "mt", + "mi", + "mr", + "mn", + "my", + "ne", + "no", + "nn", + "oc", + "ps", + "fa", + "pl", + "pt", + "pa", + "ro", + "ru", + "sa", + "sr", + "sn", + "sd", + "si", + "sk", + "sl", + "so", + "es", + "su", + "sw", + "sv", + "tl", + "tg", + "ta", + "tt", + "te", + "th", + "bo", + "tr", + "tk", + "uk", + "ur", + "uz", + "vi", + "cy", + "yi", + "yo" + ] + } }, "transcriptionHint": { "type": "string", @@ -7792,6 +8332,27 @@ "provider" ] }, + "SonioxContextGeneralItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The key describing the type of context (e.g., \"domain\", \"topic\", \"doctor\", \"organization\").", + "minLength": 1, + "example": "domain" + }, + "value": { + "type": "string", + "description": "The value for the context key (e.g., \"Healthcare\", \"Diabetes management consultation\").", + "minLength": 1, + "example": "Healthcare" + } + }, + "required": [ + "key", + "value" + ] + }, "SonioxTranscriber": { "type": "object", "properties": { @@ -7997,11 +8558,205 @@ "zh", "zu" ], - "description": "The language for transcription. Uses ISO 639-1 codes. Soniox supports 60+ languages with a single universal model." + "description": "Single language for transcription as an ISO 639-1 code (e.g., `en`, `es`). For multi-language hints or to enable Soniox auto-detect, use `languages` instead — when `languages` is set (including to an empty array), this field is ignored when building the Soniox request. Defaults to `en` if neither this nor `languages` is set." + }, + "languages": { + "type": "array", + "description": "Language hints sent to Soniox as `language_hints`. Provide `[lang1, lang2, ...]` (ISO 639-1 codes) to bias recognition toward specific languages, or provide an explicit empty array `[]` to enable Soniox auto-detect across all 60+ supported languages. When set (including the empty array), this field takes precedence over the singular `language` field. When omitted, falls back to the singular `language` (which defaults to `en` if also unset). Best accuracy is achieved with a single language.", + "items": { + "type": "string", + "enum": [ + "aa", + "ab", + "ae", + "af", + "ak", + "am", + "an", + "ar", + "as", + "av", + "ay", + "az", + "ba", + "be", + "bg", + "bh", + "bi", + "bm", + "bn", + "bo", + "br", + "bs", + "ca", + "ce", + "ch", + "co", + "cr", + "cs", + "cu", + "cv", + "cy", + "da", + "de", + "dv", + "dz", + "ee", + "el", + "en", + "eo", + "es", + "et", + "eu", + "fa", + "ff", + "fi", + "fj", + "fo", + "fr", + "fy", + "ga", + "gd", + "gl", + "gn", + "gu", + "gv", + "ha", + "he", + "hi", + "ho", + "hr", + "ht", + "hu", + "hy", + "hz", + "ia", + "id", + "ie", + "ig", + "ii", + "ik", + "io", + "is", + "it", + "iu", + "ja", + "jv", + "ka", + "kg", + "ki", + "kj", + "kk", + "kl", + "km", + "kn", + "ko", + "kr", + "ks", + "ku", + "kv", + "kw", + "ky", + "la", + "lb", + "lg", + "li", + "ln", + "lo", + "lt", + "lu", + "lv", + "mg", + "mh", + "mi", + "mk", + "ml", + "mn", + "mr", + "ms", + "mt", + "my", + "na", + "nb", + "nd", + "ne", + "ng", + "nl", + "nn", + "no", + "nr", + "nv", + "ny", + "oc", + "oj", + "om", + "or", + "os", + "pa", + "pi", + "pl", + "ps", + "pt", + "qu", + "rm", + "rn", + "ro", + "ru", + "rw", + "sa", + "sc", + "sd", + "se", + "sg", + "si", + "sk", + "sl", + "sm", + "sn", + "so", + "sq", + "sr", + "ss", + "st", + "su", + "sv", + "sw", + "ta", + "te", + "tg", + "th", + "ti", + "tk", + "tl", + "tn", + "to", + "tr", + "ts", + "tt", + "tw", + "ty", + "ug", + "uk", + "ur", + "uz", + "ve", + "vi", + "vo", + "wa", + "wo", + "xh", + "yi", + "yue", + "yo", + "za", + "zh", + "zu" + ] + } }, "languageHintsStrict": { "type": "boolean", - "description": "When enabled, restricts transcription to the language specified in the language field. When disabled, the model can detect and transcribe any of 60+ supported languages. Defaults to true." + "description": "When `true`, Soniox strictly restricts transcription to the languages in `languages` (or the singular `language` if `languages` is unset). When `false`, Soniox biases toward those languages but still allows transcription in other languages. Has no effect when no language hints are sent (e.g., `languages: []` for auto-detect). Defaults to `true` (strict mode)." }, "maxEndpointDelayMs": { "type": "number", @@ -8016,6 +8771,23 @@ "type": "string" } }, + "contextGeneral": { + "description": "General context key-value pairs that guide the AI model during transcription. Helps adapt vocabulary to the correct domain, improving accuracy. Recommended: 10 or fewer pairs. Maps to Soniox context.general.", + "example": [ + { + "key": "domain", + "value": "Healthcare" + }, + { + "key": "topic", + "value": "Diabetes management consultation" + } + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/SonioxContextGeneralItem" + } + }, "fallbackPlan": { "description": "This is the plan for transcriber provider fallbacks in the event that the primary transcriber provider fails.", "allOf": [ @@ -8551,6 +9323,66 @@ "model" ] }, + "XaiTranscriber": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "xai" + ] + }, + "model": { + "type": "string", + "description": "The xAI speech-to-text model to use. xAI currently exposes a single STT model — placeholder for future model selection.", + "enum": [ + "default" + ] + }, + "language": { + "type": "string", + "description": "Single language for transcription as an ISO 639-1 code (e.g., `en`, `es`). Defaults to `en` if not set. xAI auto-detects when omitted via the API but Vapi defaults to English for deterministic behavior.", + "enum": [ + "ar", + "cs", + "da", + "nl", + "en", + "fil", + "fr", + "de", + "hi", + "id", + "it", + "ja", + "ko", + "mk", + "ms", + "fa", + "pl", + "pt", + "ro", + "ru", + "es", + "sv", + "th", + "tr", + "vi" + ] + }, + "fallbackPlan": { + "description": "This is the plan for transcriber provider fallbacks in the event that the primary transcriber provider fails.", + "allOf": [ + { + "$ref": "#/components/schemas/FallbackTranscriberPlan" + } + ] + } + }, + "required": [ + "provider" + ] + }, "FallbackAssemblyAITranscriber": { "type": "object", "properties": { @@ -9119,7 +9951,8 @@ "base-voicemail", "base-video", "whisper", - "flux-general-en" + "flux-general-en", + "flux-general-multi" ] }, { @@ -9134,8 +9967,11 @@ "ar", "az", "ba", + "be", "bg", + "bn", "br", + "bs", "ca", "cs", "da", @@ -9165,6 +10001,7 @@ "he", "hi", "hi-Latn", + "hr", "hu", "id", "is", @@ -9178,6 +10015,7 @@ "lt", "lv", "mk", + "mr", "ms", "multi", "nl", @@ -9199,8 +10037,10 @@ "sv-SE", "ta", "taq", + "te", "th", "th-TH", + "tl", "tr", "tt", "uk", @@ -9236,6 +10076,29 @@ "description": "If set to true, Deepgram will replace profanity in transcripts with surrounding asterisks, e.g. \"f***\".\n\n@default false", "example": false }, + "redaction": { + "type": "array", + "description": "Enables redaction of sensitive information from transcripts.\n\nOptions include:\n- \"pci\": Redacts credit card numbers, expiration dates, and CVV.\n- \"pii\": Redacts personally identifiable information (names, locations, identifying numbers, etc.).\n- \"phi\": Redacts protected health information (medical conditions, drugs, injuries, etc.).\n- \"numbers\": Redacts numerical and identifying entities (dates, account numbers, SSNs, etc.).\n\nMultiple values can be provided to redact different categories simultaneously.\nRedacted content is replaced with entity labels like [CREDIT_CARD_1], [SSN_1], etc.\n\nSee https://developers.deepgram.com/docs/redaction for details.", + "enum": [ + "pci", + "pii", + "phi", + "numbers" + ], + "example": [ + "pci", + "phi" + ], + "items": { + "type": "string", + "enum": [ + "pci", + "pii", + "phi", + "numbers" + ] + } + }, "confidenceThreshold": { "type": "number", "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", @@ -9243,13 +10106,6 @@ "maximum": 1, "example": 0.4 }, - "eagerEotThreshold": { - "type": "number", - "description": "Eager end-of-turn confidence required to fire a eager end-of-turn event. Setting a value here will enable EagerEndOfTurn and SpeechResumed events. It is disabled by default. Only used with Flux models.", - "minimum": 0, - "maximum": 1, - "example": 0.3 - }, "eotThreshold": { "type": "number", "description": "End-of-turn confidence required to finish a turn. Only used with Flux models.\n\n@default 0.7", @@ -9264,6 +10120,17 @@ "maximum": 10000, "example": 5000 }, + "languages": { + "description": "Language hints to bias Flux Multilingual (`flux-general-multi`) toward specific languages.\nProvide BCP-47 language codes (e.g. \"en\", \"es\", \"fr\"). Multiple hints can be given for\nmultilingual or code-switching scenarios. Omit for auto-detection. Only used with `flux-general-multi`.", + "example": [ + "en", + "es" + ], + "type": "array", + "items": { + "type": "string" + } + }, "keywords": { "description": "These keywords are passed to the transcription model to help it pick up use-case specific words. Anything that may not be a common word, like your company name, should be added here.", "type": "array", @@ -9304,6 +10171,7 @@ "description": "This is the model that will be used for the transcription.", "oneOf": [ { + "type": "string", "enum": [ "scribe_v1", "scribe_v2", @@ -9579,6 +10447,7 @@ "description": "This is the Gladia model that will be used. Default is 'fast'", "oneOf": [ { + "type": "string", "enum": [ "fast", "accurate", @@ -9706,109 +10575,112 @@ ] }, "languages": { - "type": "string", + "type": "array", "description": "Defines the languages to use for the transcription. Required when languageBehaviour is 'manual'.", - "enum": [ - "af", - "sq", - "am", - "ar", - "hy", - "as", - "az", - "ba", - "eu", - "be", - "bn", - "bs", - "br", - "bg", - "ca", - "zh", - "hr", - "cs", - "da", - "nl", - "en", - "et", - "fo", - "fi", - "fr", - "gl", - "ka", - "de", - "el", - "gu", - "ht", - "ha", - "haw", - "he", - "hi", - "hu", - "is", - "id", - "it", - "ja", - "jv", - "kn", - "kk", - "km", - "ko", - "lo", - "la", - "lv", - "ln", - "lt", - "lb", - "mk", - "mg", - "ms", - "ml", - "mt", - "mi", - "mr", - "mn", - "my", - "ne", - "no", - "nn", - "oc", - "ps", - "fa", - "pl", - "pt", - "pa", - "ro", - "ru", - "sa", - "sr", - "sn", - "sd", - "si", - "sk", - "sl", - "so", - "es", - "su", - "sw", - "sv", - "tl", - "tg", - "ta", - "tt", - "te", - "th", - "bo", - "tr", - "tk", - "uk", - "ur", - "uz", - "vi", - "cy", - "yi", - "yo" - ] + "items": { + "type": "string", + "enum": [ + "af", + "sq", + "am", + "ar", + "hy", + "as", + "az", + "ba", + "eu", + "be", + "bn", + "bs", + "br", + "bg", + "ca", + "zh", + "hr", + "cs", + "da", + "nl", + "en", + "et", + "fo", + "fi", + "fr", + "gl", + "ka", + "de", + "el", + "gu", + "ht", + "ha", + "haw", + "he", + "hi", + "hu", + "is", + "id", + "it", + "ja", + "jv", + "kn", + "kk", + "km", + "ko", + "lo", + "la", + "lv", + "ln", + "lt", + "lb", + "mk", + "mg", + "ms", + "ml", + "mt", + "mi", + "mr", + "mn", + "my", + "ne", + "no", + "nn", + "oc", + "ps", + "fa", + "pl", + "pt", + "pa", + "ro", + "ru", + "sa", + "sr", + "sn", + "sd", + "si", + "sk", + "sl", + "so", + "es", + "su", + "sw", + "sv", + "tl", + "tg", + "ta", + "tt", + "te", + "th", + "bo", + "tr", + "tk", + "uk", + "ur", + "uz", + "vi", + "cy", + "yi", + "yo" + ] + } }, "transcriptionHint": { "type": "string", @@ -10084,11 +10956,205 @@ "zh", "zu" ], - "description": "The language for transcription. Uses ISO 639-1 codes. Soniox supports 60+ languages with a single universal model." + "description": "Single language for transcription as an ISO 639-1 code (e.g., `en`, `es`). For multi-language hints or to enable Soniox auto-detect, use `languages` instead — when `languages` is set (including to an empty array), this field is ignored when building the Soniox request. Defaults to `en` if neither this nor `languages` is set." + }, + "languages": { + "type": "array", + "description": "Language hints sent to Soniox as `language_hints`. Provide `[lang1, lang2, ...]` (ISO 639-1 codes) to bias recognition toward specific languages, or provide an explicit empty array `[]` to enable Soniox auto-detect across all 60+ supported languages. When set (including the empty array), this field takes precedence over the singular `language` field. When omitted, falls back to the singular `language` (which defaults to `en` if also unset). Best accuracy is achieved with a single language.", + "items": { + "type": "string", + "enum": [ + "aa", + "ab", + "ae", + "af", + "ak", + "am", + "an", + "ar", + "as", + "av", + "ay", + "az", + "ba", + "be", + "bg", + "bh", + "bi", + "bm", + "bn", + "bo", + "br", + "bs", + "ca", + "ce", + "ch", + "co", + "cr", + "cs", + "cu", + "cv", + "cy", + "da", + "de", + "dv", + "dz", + "ee", + "el", + "en", + "eo", + "es", + "et", + "eu", + "fa", + "ff", + "fi", + "fj", + "fo", + "fr", + "fy", + "ga", + "gd", + "gl", + "gn", + "gu", + "gv", + "ha", + "he", + "hi", + "ho", + "hr", + "ht", + "hu", + "hy", + "hz", + "ia", + "id", + "ie", + "ig", + "ii", + "ik", + "io", + "is", + "it", + "iu", + "ja", + "jv", + "ka", + "kg", + "ki", + "kj", + "kk", + "kl", + "km", + "kn", + "ko", + "kr", + "ks", + "ku", + "kv", + "kw", + "ky", + "la", + "lb", + "lg", + "li", + "ln", + "lo", + "lt", + "lu", + "lv", + "mg", + "mh", + "mi", + "mk", + "ml", + "mn", + "mr", + "ms", + "mt", + "my", + "na", + "nb", + "nd", + "ne", + "ng", + "nl", + "nn", + "no", + "nr", + "nv", + "ny", + "oc", + "oj", + "om", + "or", + "os", + "pa", + "pi", + "pl", + "ps", + "pt", + "qu", + "rm", + "rn", + "ro", + "ru", + "rw", + "sa", + "sc", + "sd", + "se", + "sg", + "si", + "sk", + "sl", + "sm", + "sn", + "so", + "sq", + "sr", + "ss", + "st", + "su", + "sv", + "sw", + "ta", + "te", + "tg", + "th", + "ti", + "tk", + "tl", + "tn", + "to", + "tr", + "ts", + "tt", + "tw", + "ty", + "ug", + "uk", + "ur", + "uz", + "ve", + "vi", + "vo", + "wa", + "wo", + "xh", + "yi", + "yue", + "yo", + "za", + "zh", + "zu" + ] + } }, "languageHintsStrict": { "type": "boolean", - "description": "When enabled, restricts transcription to the language specified in the language field. When disabled, the model can detect and transcribe any of 60+ supported languages. Defaults to true." + "description": "When `true`, Soniox strictly restricts transcription to the languages in `languages` (or the singular `language` if `languages` is unset). When `false`, Soniox biases toward those languages but still allows transcription in other languages. Has no effect when no language hints are sent (e.g., `languages: []` for auto-detect). Defaults to `true` (strict mode)." }, "maxEndpointDelayMs": { "type": "number", @@ -10102,6 +11168,23 @@ "items": { "type": "string" } + }, + "contextGeneral": { + "description": "General context key-value pairs that guide the AI model during transcription. Helps adapt vocabulary to the correct domain, improving accuracy. Recommended: 10 or fewer pairs. Maps to Soniox context.general.", + "example": [ + { + "key": "domain", + "value": "Healthcare" + }, + { + "key": "topic", + "value": "Diabetes management consultation" + } + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/SonioxContextGeneralItem" + } } }, "required": [ @@ -10574,6 +11657,58 @@ "model" ] }, + "FallbackXaiTranscriber": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "xai" + ] + }, + "model": { + "type": "string", + "description": "The xAI speech-to-text model to use. xAI currently exposes a single STT model — placeholder for future model selection.", + "enum": [ + "default" + ] + }, + "language": { + "type": "string", + "description": "Single language for transcription as an ISO 639-1 code (e.g., `en`, `es`). Defaults to `en` if not set. xAI auto-detects when omitted via the API but Vapi defaults to English for deterministic behavior.", + "enum": [ + "ar", + "cs", + "da", + "nl", + "en", + "fil", + "fr", + "de", + "hi", + "id", + "it", + "ja", + "ko", + "mk", + "ms", + "fa", + "pl", + "pt", + "ro", + "ru", + "es", + "sv", + "th", + "tr", + "vi" + ] + } + }, + "required": [ + "provider" + ] + }, "LangfuseObservabilityPlan": { "type": "object", "properties": { @@ -12386,6 +13521,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -12439,6 +13578,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -12501,7 +13644,7 @@ "silenceTimeoutSeconds": { "type": "number", "description": "This is the number of seconds of silence to wait before ending the call. Defaults to 30.\n\n@default 30", - "minimum": 10, + "minimum": 5, "maximum": 3600 } }, @@ -12971,6 +14114,20 @@ "type" ] }, + "ContextEngineeringPlanPreviousAssistantMessages": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "previousAssistantMessages" + ] + } + }, + "required": [ + "type" + ] + }, "HandoffDestinationAssistant": { "type": "object", "properties": { @@ -12998,6 +14155,10 @@ { "$ref": "#/components/schemas/ContextEngineeringPlanUserAndAssistantMessages", "title": "User And Assistant Messages" + }, + { + "$ref": "#/components/schemas/ContextEngineeringPlanPreviousAssistantMessages", + "title": "Previous Assistant Messages" } ] }, @@ -13163,6 +14324,10 @@ { "$ref": "#/components/schemas/ContextEngineeringPlanUserAndAssistantMessages", "title": "User And Assistant Messages" + }, + { + "$ref": "#/components/schemas/ContextEngineeringPlanPreviousAssistantMessages", + "title": "Previous Assistant Messages" } ] }, @@ -17380,6 +18545,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -17457,6 +18626,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -18419,7 +19592,7 @@ "properties": { "timeoutSeconds": { "type": "number", - "description": "This is the timeout in seconds before action is triggered.\nThe clock starts when the assistant finishes speaking and remains active until the user speaks.\n\n@default 7.5", + "description": "This is the timeout in seconds before action is triggered.\nThe clock starts when the assistant finishes speaking and remains active until the user speaks.\n\n@default 7.5\n@minimum 2\n@maximum 1000", "minimum": 1, "maximum": 1000 }, @@ -18657,9 +19830,23 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, + "firstMessageMode": { + "type": "string", + "description": "This controls whether the consent assistant speaks first or waits for the caller to speak first.\n\nUse:\n- `assistant-speaks-first` (default) to have the consent assistant play the consent message as soon as the call is answered.\n- `assistant-waits-for-user` to have the consent assistant wait for the caller to speak before playing the consent message.\n\nWe strongly recommend `assistant-waits-for-user` for outbound calls. Some telephony providers signal \"answered\" while the line is still ringing, which can cause the consent message to play into a ringing line and be missed by the caller. Waiting for the caller to speak first guarantees they hear the full consent message.\n\nNote: when combined with `type: 'stay-on-line'`, silence only counts toward consent after the caller has spoken at least once.\n\n@default 'assistant-speaks-first'", + "enum": [ + "assistant-speaks-first", + "assistant-waits-for-user" + ], + "default": "assistant-speaks-first", + "example": "assistant-speaks-first" + }, "type": { "type": "string", "description": "This is the type of recording consent plan. This type assumes consent is granted if the user stays on the line.", @@ -18768,9 +19955,23 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, + "firstMessageMode": { + "type": "string", + "description": "This controls whether the consent assistant speaks first or waits for the caller to speak first.\n\nUse:\n- `assistant-speaks-first` (default) to have the consent assistant play the consent message as soon as the call is answered.\n- `assistant-waits-for-user` to have the consent assistant wait for the caller to speak before playing the consent message.\n\nWe strongly recommend `assistant-waits-for-user` for outbound calls. Some telephony providers signal \"answered\" while the line is still ringing, which can cause the consent message to play into a ringing line and be missed by the caller. Waiting for the caller to speak first guarantees they hear the full consent message.\n\nNote: when combined with `type: 'stay-on-line'`, silence only counts toward consent after the caller has spoken at least once.\n\n@default 'assistant-speaks-first'", + "enum": [ + "assistant-speaks-first", + "assistant-waits-for-user" + ], + "default": "assistant-speaks-first", + "example": "assistant-speaks-first" + }, "type": { "type": "string", "description": "This is the type of recording consent plan. This type assumes consent is granted if the user verbally consents or declines.", @@ -19574,6 +20775,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -19651,6 +20856,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -19672,7 +20881,7 @@ "description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.", "oneOf": [ { - "type": "enum", + "type": "string", "enum": [ "off", "office" @@ -19879,10 +21088,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -19992,7 +21197,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -20455,7 +21659,9 @@ "grok-2", "grok-3", "grok-4-fast-reasoning", - "grok-4-fast-non-reasoning" + "grok-4-fast-non-reasoning", + "grok-4.20-0309-reasoning", + "grok-4.20-0309-non-reasoning" ] }, "provider": { @@ -20789,6 +21995,10 @@ { "$ref": "#/components/schemas/FallbackInworldVoice", "title": "Inworld" + }, + { + "$ref": "#/components/schemas/FallbackXaiVoice", + "title": "xAI" } ] } @@ -20980,6 +22190,8 @@ "type": "string", "description": "This is the model that will be used. This is optional and will default to the correct model for the voiceId.", "enum": [ + "sonic-3.5", + "sonic-3.5-2026-05-04", "sonic-3", "sonic-3-2026-01-12", "sonic-3-2025-10-27", @@ -23402,6 +24614,86 @@ "voiceId" ] }, + "XaiVoice": { + "type": "object", + "properties": { + "cachingEnabled": { + "type": "boolean", + "description": "This is the flag to toggle voice caching for the assistant.", + "example": true, + "default": true + }, + "provider": { + "type": "string", + "description": "This is the voice provider that will be used.", + "enum": [ + "xai" + ] + }, + "voiceId": { + "type": "string", + "description": "Built-in voices: eve, ara, rex, sal, leo. Cloned voice IDs are also accepted.", + "maxLength": 120, + "title": "xAI Voice ID", + "enum": [ + "eve", + "ara", + "rex", + "sal", + "leo" + ], + "example": "eve" + }, + "language": { + "type": "string", + "description": "BCP-47 language code for xAI TTS synthesis.", + "enum": [ + "auto", + "en", + "ar-EG", + "ar-SA", + "ar-AE", + "bn", + "zh", + "fr", + "de", + "hi", + "id", + "it", + "ja", + "ko", + "pt-BR", + "pt-PT", + "ru", + "es-MX", + "es-ES", + "tr", + "vi" + ], + "default": "en" + }, + "chunkPlan": { + "description": "This is the plan for chunking the model output before it is sent to the voice provider.", + "allOf": [ + { + "$ref": "#/components/schemas/ChunkPlan" + } + ] + }, + "fallbackPlan": { + "description": "This is the plan for voice provider fallbacks in the event that the primary voice provider fails.", + "allOf": [ + { + "$ref": "#/components/schemas/FallbackPlan" + } + ] + } + }, + "required": [ + "provider", + "voiceId" + ] + }, "FallbackAzureVoice": { "type": "object", "properties": { @@ -23480,6 +24772,8 @@ "type": "string", "description": "This is the model that will be used. This is optional and will default to the correct model for the voiceId.", "enum": [ + "sonic-3.5", + "sonic-3.5-2026-05-04", "sonic-3", "sonic-3-2026-01-12", "sonic-3-2025-10-27", @@ -25288,6 +26582,78 @@ "voiceId" ] }, + "FallbackXaiVoice": { + "type": "object", + "properties": { + "cachingEnabled": { + "type": "boolean", + "description": "This is the flag to toggle voice caching for the assistant.", + "example": true, + "default": true + }, + "provider": { + "type": "string", + "description": "This is the voice provider that will be used.", + "enum": [ + "xai" + ] + }, + "voiceId": { + "type": "string", + "description": "Built-in voices: eve, ara, rex, sal, leo. Cloned voice IDs are also accepted.", + "maxLength": 120, + "title": "xAI Voice ID", + "enum": [ + "eve", + "ara", + "rex", + "sal", + "leo" + ], + "example": "eve" + }, + "language": { + "type": "string", + "description": "BCP-47 language code for xAI TTS synthesis.", + "enum": [ + "auto", + "en", + "ar-EG", + "ar-SA", + "ar-AE", + "bn", + "zh", + "fr", + "de", + "hi", + "id", + "it", + "ja", + "ko", + "pt-BR", + "pt-PT", + "ru", + "es-MX", + "es-ES", + "tr", + "vi" + ], + "default": "en" + }, + "chunkPlan": { + "description": "This is the plan for chunking the model output before it is sent to the voice provider.", + "allOf": [ + { + "$ref": "#/components/schemas/ChunkPlan" + } + ] + } + }, + "required": [ + "provider", + "voiceId" + ] + }, "TransportConfigurationTwilio": { "type": "object", "properties": { @@ -25823,6 +27189,10 @@ "type": "string", "description": "This is not returned in the API." }, + "apiUrl": { + "type": "string", + "description": "This can be used to point to an onprem Cartesia instance. Defaults to api.cartesia.ai." + }, "name": { "type": "string", "description": "This is the name of credential. This is just for your reference.", @@ -27249,6 +28619,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -27395,6 +28769,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -27807,10 +29185,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -27920,7 +29294,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -28219,6 +29592,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -28365,6 +29742,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -28777,10 +30158,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -28890,7 +30267,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -29086,6 +30462,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -29232,6 +30612,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -29644,10 +31028,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -29757,7 +31137,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -29936,6 +31315,19 @@ "currentPage": { "type": "number" }, + "totalPages": { + "type": "number" + }, + "hasNextPage": { + "type": "boolean" + }, + "sortOrder": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, "itemsBeyondRetention": { "type": "boolean" }, @@ -30043,6 +31435,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -30189,6 +31585,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -30601,10 +32001,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -30714,7 +32110,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -31026,6 +32421,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -31103,6 +32502,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -31124,7 +32527,7 @@ "description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.", "oneOf": [ { - "type": "enum", + "type": "string", "enum": [ "off", "office" @@ -31331,10 +32734,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -31444,7 +32843,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -31709,6 +33107,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -31786,6 +33188,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -31807,7 +33213,7 @@ "description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.", "oneOf": [ { - "type": "enum", + "type": "string", "enum": [ "off", "office" @@ -32014,10 +33420,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -32127,7 +33529,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -32374,6 +33775,10 @@ { "$ref": "#/components/schemas/SonioxTranscriber", "title": "SonioxTranscriber" + }, + { + "$ref": "#/components/schemas/XaiTranscriber", + "title": "XaiTranscriber" } ] }, @@ -32451,6 +33856,10 @@ { "$ref": "#/components/schemas/MinimaxVoice", "title": "MinimaxVoice" + }, + { + "$ref": "#/components/schemas/XaiVoice", + "title": "XaiVoice" } ] }, @@ -32472,7 +33881,7 @@ "description": "This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.\nYou can also provide a custom sound by providing a URL to an audio file.", "oneOf": [ { - "type": "enum", + "type": "string", "enum": [ "off", "office" @@ -32679,10 +34088,6 @@ "$ref": "#/components/schemas/CreateTogetherAICredentialDTO", "title": "TogetherAICredential" }, - { - "$ref": "#/components/schemas/CreateTrieveCredentialDTO", - "title": "TrieveCredential" - }, { "$ref": "#/components/schemas/CreateTwilioCredentialDTO", "title": "TwilioCredential" @@ -32792,7 +34197,6 @@ "mistral": "#/components/schemas/CreateMistralCredentialDTO", "speechmatics": "#/components/schemas/CreateSpeechmaticsCredentialDTO", "soniox": "#/components/schemas/CreateSonioxCredentialDTO", - "trieve": "#/components/schemas/CreateTrieveCredentialDTO", "google.calendar.oauth2-client": "#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO", "google.calendar.oauth2-authorization": "#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO", "google.sheets.oauth2-authorization": "#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO", @@ -34010,6 +35414,7 @@ "pipeline-error-inworld-voice-failed", "pipeline-error-minimax-voice-failed", "pipeline-error-wellsaid-voice-failed", + "pipeline-error-xai-voice-failed", "pipeline-error-tavus-video-failed", "call.in-progress.error-vapifault-openai-voice-failed", "call.in-progress.error-vapifault-cartesia-voice-failed", @@ -34081,6 +35486,16 @@ "call.in-progress.error-vapifault-soniox-transcriber-invalid-config", "call.in-progress.error-vapifault-soniox-transcriber-server-error", "call.in-progress.error-vapifault-soniox-transcriber-failed", + "pipeline-error-xai-transcriber-auth-failed", + "pipeline-error-xai-transcriber-rate-limited", + "pipeline-error-xai-transcriber-invalid-config", + "pipeline-error-xai-transcriber-server-error", + "pipeline-error-xai-transcriber-failed", + "call.in-progress.error-vapifault-xai-transcriber-auth-failed", + "call.in-progress.error-vapifault-xai-transcriber-rate-limited", + "call.in-progress.error-vapifault-xai-transcriber-invalid-config", + "call.in-progress.error-vapifault-xai-transcriber-server-error", + "call.in-progress.error-vapifault-xai-transcriber-failed", "call.in-progress.error-pipeline-no-available-llm-model", "worker-shutdown", "vonage-disconnected", @@ -34516,6 +35931,16 @@ "call.in-progress.error-vapifault-soniox-transcriber-invalid-config", "call.in-progress.error-vapifault-soniox-transcriber-server-error", "call.in-progress.error-vapifault-soniox-transcriber-failed", + "pipeline-error-xai-transcriber-auth-failed", + "pipeline-error-xai-transcriber-rate-limited", + "pipeline-error-xai-transcriber-invalid-config", + "pipeline-error-xai-transcriber-server-error", + "pipeline-error-xai-transcriber-failed", + "call.in-progress.error-vapifault-xai-transcriber-auth-failed", + "call.in-progress.error-vapifault-xai-transcriber-rate-limited", + "call.in-progress.error-vapifault-xai-transcriber-invalid-config", + "call.in-progress.error-vapifault-xai-transcriber-server-error", + "call.in-progress.error-vapifault-xai-transcriber-failed", "call.in-progress.error-warm-transfer-max-duration", "call.in-progress.error-warm-transfer-assistant-cancelled", "call.in-progress.error-warm-transfer-silence-timeout", @@ -35949,6 +37374,15 @@ "DESC" ] }, + "sortBy": { + "type": "string", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "enum": [ + "createdAt", + "duration", + "cost" + ] + }, "limit": { "type": "number", "description": "This is the maximum number of items to return. Defaults to 100.", @@ -36547,6 +37981,15 @@ "DESC" ] }, + "sortBy": { + "type": "string", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "enum": [ + "createdAt", + "duration", + "cost" + ] + }, "limit": { "type": "number", "description": "This is the maximum number of items to return. Defaults to 100.", @@ -37698,6 +39141,15 @@ "DESC" ] }, + "sortBy": { + "type": "string", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "enum": [ + "createdAt", + "duration", + "cost" + ] + }, "limit": { "type": "number", "description": "This is the maximum number of items to return. Defaults to 100.", @@ -37874,6 +39326,15 @@ "DESC" ] }, + "sortBy": { + "type": "string", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "enum": [ + "createdAt", + "duration", + "cost" + ] + }, "limit": { "type": "number", "description": "This is the maximum number of items to return. Defaults to 100.", @@ -43709,82 +45170,6 @@ } } }, - "TrieveKnowledgeBaseSearchPlan": { - "type": "object", - "properties": { - "topK": { - "type": "number", - "description": "Specifies the number of top chunks to return. This corresponds to the `page_size` parameter in Trieve." - }, - "removeStopWords": { - "type": "boolean", - "description": "If true, stop words (specified in server/src/stop-words.txt in the git repo) will be removed. This will preserve queries that are entirely stop words." - }, - "scoreThreshold": { - "type": "number", - "description": "This is the score threshold to filter out chunks with a score below the threshold for cosine distance metric. For Manhattan Distance, Euclidean Distance, and Dot Product, it will filter out scores above the threshold distance. This threshold applies before weight and bias modifications. If not specified, this defaults to no threshold. A threshold of 0 will default to no threshold." - }, - "searchType": { - "type": "string", - "description": "This is the search method used when searching for relevant chunks from the vector store.", - "enum": [ - "fulltext", - "semantic", - "hybrid", - "bm25" - ] - } - }, - "required": [ - "searchType" - ] - }, - "TrieveKnowledgeBase": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "This knowledge base is provided by Trieve.\n\nTo learn more about Trieve, visit https://trieve.ai.", - "enum": [ - "trieve" - ] - }, - "name": { - "type": "string", - "description": "This is the name of the knowledge base." - }, - "searchPlan": { - "description": "This is the searching plan used when searching for relevant chunks from the vector store.\n\nYou should configure this if you're running into these issues:\n- Too much unnecessary context is being fed as knowledge base context.\n- Not enough relevant context is being fed as knowledge base context.", - "allOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseSearchPlan" - } - ] - }, - "createPlan": { - "description": "This is the plan if you want us to create/import a new vector store using Trieve.", - "oneOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseImport", - "title": "Import" - } - ] - }, - "id": { - "type": "string", - "description": "This is the id of the knowledge base." - }, - "orgId": { - "type": "string", - "description": "This is the org id of the knowledge base." - } - }, - "required": [ - "provider", - "id", - "orgId" - ] - }, "CustomKnowledgeBase": { "type": "object", "properties": { @@ -43819,68 +45204,6 @@ "orgId" ] }, - "CreateTrieveKnowledgeBaseDTO": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "This knowledge base is provided by Trieve.\n\nTo learn more about Trieve, visit https://trieve.ai.", - "enum": [ - "trieve" - ] - }, - "name": { - "type": "string", - "description": "This is the name of the knowledge base." - }, - "searchPlan": { - "description": "This is the searching plan used when searching for relevant chunks from the vector store.\n\nYou should configure this if you're running into these issues:\n- Too much unnecessary context is being fed as knowledge base context.\n- Not enough relevant context is being fed as knowledge base context.", - "allOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseSearchPlan" - } - ] - }, - "createPlan": { - "description": "This is the plan if you want us to create/import a new vector store using Trieve.", - "oneOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseImport", - "title": "Import" - } - ] - } - }, - "required": [ - "provider" - ] - }, - "UpdateTrieveKnowledgeBaseDTO": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "This is the name of the knowledge base." - }, - "searchPlan": { - "description": "This is the searching plan used when searching for relevant chunks from the vector store.\n\nYou should configure this if you're running into these issues:\n- Too much unnecessary context is being fed as knowledge base context.\n- Not enough relevant context is being fed as knowledge base context.", - "allOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseSearchPlan" - } - ] - }, - "createPlan": { - "description": "This is the plan if you want us to create/import a new vector store using Trieve.", - "oneOf": [ - { - "$ref": "#/components/schemas/TrieveKnowledgeBaseImport", - "title": "Import" - } - ] - } - } - }, "UpdateCustomKnowledgeBaseDTO": { "type": "object", "properties": { @@ -43894,83 +45217,6 @@ } } }, - "TrieveKnowledgeBaseChunkPlan": { - "type": "object", - "properties": { - "fileIds": { - "description": "These are the file ids that will be used to create the vector store. To upload files, use the `POST /files` endpoint.", - "type": "array", - "items": { - "type": "string" - } - }, - "websites": { - "description": "These are the websites that will be used to create the vector store.", - "type": "array", - "items": { - "type": "string" - } - }, - "targetSplitsPerChunk": { - "type": "number", - "description": "This is an optional field which allows you to specify the number of splits you want per chunk. If not specified, the default 20 is used. However, you may want to use a different number." - }, - "splitDelimiters": { - "description": "This is an optional field which allows you to specify the delimiters to use when splitting the file before chunking the text. If not specified, the default [.!?\\n] are used to split into sentences. However, you may want to use spaces or other delimiters.", - "type": "array", - "items": { - "type": "string" - } - }, - "rebalanceChunks": { - "type": "boolean", - "description": "This is an optional field which allows you to specify whether or not to rebalance the chunks created from the file. If not specified, the default true is used. If true, Trieve will evenly distribute remainder splits across chunks such that 66 splits with a target_splits_per_chunk of 20 will result in 3 chunks with 22 splits each." - } - } - }, - "TrieveKnowledgeBaseCreate": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "This is to create a new dataset on Trieve.", - "enum": [ - "create" - ] - }, - "chunkPlans": { - "description": "These are the chunk plans used to create the dataset.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TrieveKnowledgeBaseChunkPlan" - } - } - }, - "required": [ - "type", - "chunkPlans" - ] - }, - "TrieveKnowledgeBaseImport": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "This is to import an existing dataset from Trieve.", - "enum": [ - "import" - ] - }, - "providerId": { - "type": "string", - "description": "This is the `datasetId` of the dataset on your Trieve account." - } - }, - "required": [ - "type", - "providerId" - ] - }, "StructuredOutput": { "type": "object", "properties": { @@ -46824,10 +48070,125 @@ { "$ref": "#/components/schemas/JSONQueryOnCallTableWithStructuredOutputColumn", "title": "JSONQueryOnCallTableWithStructuredOutputColumn" - }, - { - "$ref": "#/components/schemas/JSONQueryOnEventsTable", - "title": "JSONQueryOnEventsTable" + }, + { + "$ref": "#/components/schemas/JSONQueryOnEventsTable", + "title": "JSONQueryOnEventsTable" + } + ] + } + }, + "id": { + "type": "string", + "description": "This is the unique identifier for the Insight." + }, + "orgId": { + "type": "string", + "description": "This is the unique identifier for the org that this Insight belongs to." + }, + "createdAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the Insight was created." + }, + "updatedAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the Insight was last updated." + }, + "systemKey": { + "type": "string", + "description": "Stable server-owned identifier for system-created insights." + } + }, + "required": [ + "type", + "queries", + "id", + "orgId", + "createdAt", + "updatedAt" + ] + }, + "InsightTimeRange": { + "type": "object", + "properties": { + "start": { + "type": "object", + "description": "This is the start date for the time range.\n\nShould be a valid ISO 8601 date-time string or relative time string.\nIf not provided, defaults to the 7 days ago.\n\nRelative time strings of the format \"-{number}{unit}\" are allowed.\n\nValid units are:\n- d: days\n- h: hours\n- w: weeks\n- m: months\n- y: years", + "example": "\"2025-01-01\" or \"-7d\" or \"now\"" + }, + "end": { + "type": "object", + "description": "This is the end date for the time range.\n\nShould be a valid ISO 8601 date-time string or relative time string.\nIf not provided, defaults to now.\n\nRelative time strings of the format \"-{number}{unit}\" are allowed.\n\nValid units are:\n- d: days\n- h: hours\n- w: weeks\n- m: months\n- y: years", + "example": "\"2025-01-01\" or \"now\"" + }, + "timezone": { + "type": "string", + "description": "This is the timezone you want to set for the query.\n\nIf not provided, defaults to UTC." + } + } + }, + "PieInsight": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "This is the name of the Insight.", + "minLength": 1, + "maxLength": 255 + }, + "type": { + "type": "string", + "description": "This is the type of the Insight.\nIt is required to be `pie` to create a pie insight.", + "enum": [ + "pie" + ] + }, + "formulas": { + "type": "array", + "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "items": { + "$ref": "#/components/schemas/InsightFormula" + } + }, + "timeRange": { + "$ref": "#/components/schemas/InsightTimeRange" + }, + "groupBy": { + "type": "string", + "description": "This is the group by column for the insight when table is `call`.\nThese are the columns to group the results by.\nAll results are grouped by the time range step by default.", + "example": [ + "assistant_id" + ], + "enum": [ + "assistantId", + "workflowId", + "squadId", + "phoneNumberId", + "type", + "endedReason", + "customerNumber", + "campaignId", + "artifact.structuredOutputs[OutputID]" + ] + }, + "queries": { + "type": "array", + "description": "These are the queries to run to generate the insight.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/JSONQueryOnCallTableWithStringTypeColumn", + "title": "JSONQueryOnCallTableWithStringTypeColumn" + }, + { + "$ref": "#/components/schemas/JSONQueryOnCallTableWithNumberTypeColumn", + "title": "JSONQueryOnCallTableWithNumberTypeColumn" + }, + { + "$ref": "#/components/schemas/JSONQueryOnCallTableWithStructuredOutputColumn", + "title": "JSONQueryOnCallTableWithStructuredOutputColumn" } ] } @@ -46849,117 +48210,10 @@ "format": "date-time", "type": "string", "description": "This is the ISO 8601 date-time string of when the Insight was last updated." - } - }, - "required": [ - "type", - "queries", - "id", - "orgId", - "createdAt", - "updatedAt" - ] - }, - "InsightTimeRange": { - "type": "object", - "properties": { - "start": { - "type": "object", - "description": "This is the start date for the time range.\n\nShould be a valid ISO 8601 date-time string or relative time string.\nIf not provided, defaults to the 7 days ago.\n\nRelative time strings of the format \"-{number}{unit}\" are allowed.\n\nValid units are:\n- d: days\n- h: hours\n- w: weeks\n- m: months\n- y: years", - "example": "\"2025-01-01\" or \"-7d\" or \"now\"" - }, - "end": { - "type": "object", - "description": "This is the end date for the time range.\n\nShould be a valid ISO 8601 date-time string or relative time string.\nIf not provided, defaults to now.\n\nRelative time strings of the format \"-{number}{unit}\" are allowed.\n\nValid units are:\n- d: days\n- h: hours\n- w: weeks\n- m: months\n- y: years", - "example": "\"2025-01-01\" or \"now\"" }, - "timezone": { + "systemKey": { "type": "string", - "description": "This is the timezone you want to set for the query.\n\nIf not provided, defaults to UTC." - } - } - }, - "PieInsight": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "This is the name of the Insight.", - "minLength": 1, - "maxLength": 255 - }, - "type": { - "type": "string", - "description": "This is the type of the Insight.\nIt is required to be `pie` to create a pie insight.", - "enum": [ - "pie" - ] - }, - "formulas": { - "type": "array", - "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", - "items": { - "$ref": "#/components/schemas/InsightFormula" - } - }, - "timeRange": { - "$ref": "#/components/schemas/InsightTimeRange" - }, - "groupBy": { - "type": "string", - "description": "This is the group by column for the insight when table is `call`.\nThese are the columns to group the results by.\nAll results are grouped by the time range step by default.", - "example": [ - "assistant_id" - ], - "enum": [ - "assistantId", - "workflowId", - "squadId", - "phoneNumberId", - "type", - "endedReason", - "customerNumber", - "campaignId", - "artifact.structuredOutputs[OutputID]" - ] - }, - "queries": { - "type": "array", - "description": "These are the queries to run to generate the insight.", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/JSONQueryOnCallTableWithStringTypeColumn", - "title": "JSONQueryOnCallTableWithStringTypeColumn" - }, - { - "$ref": "#/components/schemas/JSONQueryOnCallTableWithNumberTypeColumn", - "title": "JSONQueryOnCallTableWithNumberTypeColumn" - }, - { - "$ref": "#/components/schemas/JSONQueryOnCallTableWithStructuredOutputColumn", - "title": "JSONQueryOnCallTableWithStructuredOutputColumn" - } - ] - } - }, - "id": { - "type": "string", - "description": "This is the unique identifier for the Insight." - }, - "orgId": { - "type": "string", - "description": "This is the unique identifier for the org that this Insight belongs to." - }, - "createdAt": { - "format": "date-time", - "type": "string", - "description": "This is the ISO 8601 date-time string of when the Insight was created." - }, - "updatedAt": { - "format": "date-time", - "type": "string", - "description": "This is the ISO 8601 date-time string of when the Insight was last updated." + "description": "Stable server-owned identifier for system-created insights." } }, "required": [ @@ -47086,6 +48340,10 @@ "format": "date-time", "type": "string", "description": "This is the ISO 8601 date-time string of when the Insight was last updated." + }, + "systemKey": { + "type": "string", + "description": "Stable server-owned identifier for system-created insights." } }, "required": [ @@ -47160,6 +48418,10 @@ "format": "date-time", "type": "string", "description": "This is the ISO 8601 date-time string of when the Insight was last updated." + }, + "systemKey": { + "type": "string", + "description": "Stable server-owned identifier for system-created insights." } }, "required": [ @@ -48782,6 +50044,10 @@ "$ref": "#/components/schemas/InsightTimeRangeWithStep" } ] + }, + "assistantId": { + "type": "string", + "description": "Optional runtime assistant scope for dashboards.\nThis is applied to call-table queries without mutating the saved insight." } } }, @@ -48850,6 +50116,10 @@ "format": "date-time", "type": "string", "description": "This is the ISO 8601 date-time string of when the Insight was last updated." + }, + "systemKey": { + "type": "string", + "description": "Stable server-owned identifier for system-created insights." } }, "required": [ @@ -49838,6 +51108,15 @@ "DESC" ] }, + "sortBy": { + "type": "string", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "enum": [ + "createdAt", + "duration", + "cost" + ] + }, "limit": { "type": "number", "description": "This is the maximum number of items to return. Defaults to 100.", @@ -50229,6 +51508,15 @@ "DESC" ] }, + "sortBy": { + "type": "string", + "description": "This is the column to sort by. Defaults to 'createdAt'.", + "enum": [ + "createdAt", + "duration", + "cost" + ] + }, "limit": { "type": "number", "description": "This is the maximum number of items to return. Defaults to 100.", @@ -51863,6 +53151,10 @@ "description": "This is the name of credential. This is just for your reference.", "minLength": 1, "maxLength": 40 + }, + "apiUrl": { + "type": "string", + "description": "This can be used to point to an onprem Cartesia instance. Defaults to api.cartesia.ai." } }, "required": [ @@ -53339,6 +54631,10 @@ "type": "string", "description": "This is not returned in the API." }, + "apiUrl": { + "type": "string", + "description": "Custom Soniox WebSocket endpoint (e.g. EU server wss://stt-rt.eu.soniox.com/transcribe-websocket). Defaults to the region-appropriate endpoint when omitted." + }, "id": { "type": "string", "description": "This is the unique identifier for the credential." @@ -53565,53 +54861,6 @@ "updatedAt" ] }, - "TrieveCredential": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "trieve" - ] - }, - "apiKey": { - "type": "string", - "description": "This is not returned in the API." - }, - "id": { - "type": "string", - "description": "This is the unique identifier for the credential." - }, - "orgId": { - "type": "string", - "description": "This is the unique identifier for the org that this credential belongs to." - }, - "createdAt": { - "format": "date-time", - "type": "string", - "description": "This is the ISO 8601 date-time string of when the credential was created." - }, - "updatedAt": { - "format": "date-time", - "type": "string", - "description": "This is the ISO 8601 date-time string of when the assistant was last updated." - }, - "name": { - "type": "string", - "description": "This is the name of credential. This is just for your reference.", - "minLength": 1, - "maxLength": 40 - } - }, - "required": [ - "provider", - "apiKey", - "id", - "orgId", - "createdAt", - "updatedAt" - ] - }, "TwilioCredential": { "type": "object", "properties": { @@ -54589,30 +55838,9 @@ "type": "string", "description": "This is not returned in the API." }, - "name": { - "type": "string", - "description": "This is the name of credential. This is just for your reference.", - "minLength": 1, - "maxLength": 40 - } - }, - "required": [ - "provider", - "apiKey" - ] - }, - "CreateSpeechmaticsCredentialDTO": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "speechmatics" - ] - }, - "apiKey": { + "apiUrl": { "type": "string", - "description": "This is not returned in the API." + "description": "Custom Soniox WebSocket endpoint (e.g. EU server wss://stt-rt.eu.soniox.com/transcribe-websocket). Defaults to the region-appropriate endpoint when omitted." }, "name": { "type": "string", @@ -54626,13 +55854,13 @@ "apiKey" ] }, - "CreateTrieveCredentialDTO": { + "CreateSpeechmaticsCredentialDTO": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ - "trieve" + "speechmatics" ] }, "apiKey": { @@ -55138,6 +56366,10 @@ "description": "This is the name of credential. This is just for your reference.", "minLength": 1, "maxLength": 40 + }, + "apiUrl": { + "type": "string", + "description": "This can be used to point to an onprem Cartesia instance. Defaults to api.cartesia.ai." } } }, @@ -55659,21 +56891,6 @@ } } }, - "UpdateTrieveCredentialDTO": { - "type": "object", - "properties": { - "apiKey": { - "type": "string", - "description": "This is not returned in the API." - }, - "name": { - "type": "string", - "description": "This is the name of credential. This is just for your reference.", - "minLength": 1, - "maxLength": 40 - } - } - }, "UpdateTwilioCredentialDTO": { "type": "object", "properties": { @@ -55947,6 +57164,10 @@ "type": "string", "description": "This is not returned in the API." }, + "apiUrl": { + "type": "string", + "description": "Custom Soniox WebSocket endpoint (e.g. EU server wss://stt-rt.eu.soniox.com/transcribe-websocket). Defaults to the region-appropriate endpoint when omitted." + }, "name": { "type": "string", "description": "This is the name of credential. This is just for your reference.", @@ -57087,7 +58308,8 @@ "inworld", "minimax", "wellsaid", - "orpheus" + "orpheus", + "xai" ] }, "providerId": { @@ -57207,7 +58429,8 @@ "inworld", "minimax", "wellsaid", - "orpheus" + "orpheus", + "xai" ], "items": { "type": "string", @@ -57230,7 +58453,8 @@ "inworld", "minimax", "wellsaid", - "orpheus" + "orpheus", + "xai" ] } } @@ -59923,6 +61147,7 @@ "pipeline-error-inworld-voice-failed", "pipeline-error-minimax-voice-failed", "pipeline-error-wellsaid-voice-failed", + "pipeline-error-xai-voice-failed", "pipeline-error-tavus-video-failed", "call.in-progress.error-vapifault-openai-voice-failed", "call.in-progress.error-vapifault-cartesia-voice-failed", @@ -59994,6 +61219,16 @@ "call.in-progress.error-vapifault-soniox-transcriber-invalid-config", "call.in-progress.error-vapifault-soniox-transcriber-server-error", "call.in-progress.error-vapifault-soniox-transcriber-failed", + "pipeline-error-xai-transcriber-auth-failed", + "pipeline-error-xai-transcriber-rate-limited", + "pipeline-error-xai-transcriber-invalid-config", + "pipeline-error-xai-transcriber-server-error", + "pipeline-error-xai-transcriber-failed", + "call.in-progress.error-vapifault-xai-transcriber-auth-failed", + "call.in-progress.error-vapifault-xai-transcriber-rate-limited", + "call.in-progress.error-vapifault-xai-transcriber-invalid-config", + "call.in-progress.error-vapifault-xai-transcriber-server-error", + "call.in-progress.error-vapifault-xai-transcriber-failed", "call.in-progress.error-pipeline-no-available-llm-model", "worker-shutdown", "vonage-disconnected", @@ -60429,6 +61664,16 @@ "call.in-progress.error-vapifault-soniox-transcriber-invalid-config", "call.in-progress.error-vapifault-soniox-transcriber-server-error", "call.in-progress.error-vapifault-soniox-transcriber-failed", + "pipeline-error-xai-transcriber-auth-failed", + "pipeline-error-xai-transcriber-rate-limited", + "pipeline-error-xai-transcriber-invalid-config", + "pipeline-error-xai-transcriber-server-error", + "pipeline-error-xai-transcriber-failed", + "call.in-progress.error-vapifault-xai-transcriber-auth-failed", + "call.in-progress.error-vapifault-xai-transcriber-rate-limited", + "call.in-progress.error-vapifault-xai-transcriber-invalid-config", + "call.in-progress.error-vapifault-xai-transcriber-server-error", + "call.in-progress.error-vapifault-xai-transcriber-failed", "call.in-progress.error-warm-transfer-max-duration", "call.in-progress.error-warm-transfer-assistant-cancelled", "call.in-progress.error-warm-transfer-silence-timeout", @@ -61302,6 +62547,7 @@ "pipeline-error-inworld-voice-failed", "pipeline-error-minimax-voice-failed", "pipeline-error-wellsaid-voice-failed", + "pipeline-error-xai-voice-failed", "pipeline-error-tavus-video-failed", "call.in-progress.error-vapifault-openai-voice-failed", "call.in-progress.error-vapifault-cartesia-voice-failed", @@ -61373,6 +62619,16 @@ "call.in-progress.error-vapifault-soniox-transcriber-invalid-config", "call.in-progress.error-vapifault-soniox-transcriber-server-error", "call.in-progress.error-vapifault-soniox-transcriber-failed", + "pipeline-error-xai-transcriber-auth-failed", + "pipeline-error-xai-transcriber-rate-limited", + "pipeline-error-xai-transcriber-invalid-config", + "pipeline-error-xai-transcriber-server-error", + "pipeline-error-xai-transcriber-failed", + "call.in-progress.error-vapifault-xai-transcriber-auth-failed", + "call.in-progress.error-vapifault-xai-transcriber-rate-limited", + "call.in-progress.error-vapifault-xai-transcriber-invalid-config", + "call.in-progress.error-vapifault-xai-transcriber-server-error", + "call.in-progress.error-vapifault-xai-transcriber-failed", "call.in-progress.error-pipeline-no-available-llm-model", "worker-shutdown", "vonage-disconnected", @@ -61808,6 +63064,16 @@ "call.in-progress.error-vapifault-soniox-transcriber-invalid-config", "call.in-progress.error-vapifault-soniox-transcriber-server-error", "call.in-progress.error-vapifault-soniox-transcriber-failed", + "pipeline-error-xai-transcriber-auth-failed", + "pipeline-error-xai-transcriber-rate-limited", + "pipeline-error-xai-transcriber-invalid-config", + "pipeline-error-xai-transcriber-server-error", + "pipeline-error-xai-transcriber-failed", + "call.in-progress.error-vapifault-xai-transcriber-auth-failed", + "call.in-progress.error-vapifault-xai-transcriber-rate-limited", + "call.in-progress.error-vapifault-xai-transcriber-invalid-config", + "call.in-progress.error-vapifault-xai-transcriber-server-error", + "call.in-progress.error-vapifault-xai-transcriber-failed", "call.in-progress.error-warm-transfer-max-duration", "call.in-progress.error-warm-transfer-assistant-cancelled", "call.in-progress.error-warm-transfer-silence-timeout", @@ -64346,6 +65612,31 @@ "secondsFromStart" ] }, + "ToolCallResultMessageWarning": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The kind of warning. Currently:\n- `oversized-tool-response`: the tool's serialized response exceeded the\n recommended size and is likely to bloat the model context, increasing\n latency and risking truncation of earlier instructions.", + "enum": [ + "oversized-tool-response" + ] + }, + "tokenCount": { + "type": "number", + "description": "The estimated number of tokens in the serialized tool response." + }, + "threshold": { + "type": "number", + "description": "The threshold (in tokens) above which the warning is raised." + } + }, + "required": [ + "type", + "tokenCount", + "threshold" + ] + }, "ToolCallResultMessage": { "type": "object", "properties": { @@ -64376,6 +65667,13 @@ "metadata": { "type": "object", "description": "The metadata for the tool call result." + }, + "warnings": { + "description": "Warnings raised for this tool call result, e.g. when the response is\nlarger than recommended for voice AI context windows.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ToolCallResultMessageWarning" + } } }, "required": [