{"openapi":"3.0.0","info":{"description":"Speech-to-text transcription platform with real-time and batch processing capabilities"},"servers":[{"description":"Speech-to-text transcription platform with real-time and batch processing capabilities","url":"https://api.apirails.com/voicegainai"}],"paths":{"/v1/asr/transcribe":{"get":{"tags":["Transcribe"],"parameters":[{"name":"full","in":"query","description":"Controls whether full or incremental results should be returned. If full=true, and the results are not final yet, no words nor transcript will be included in the result","schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"stop","in":"query","description":"Can be used to immediately stop processing of the current session.","schema":{"type":"enum","example":"","items":{"type":"string","enum":["retainResults","discardResults"]}}},{"name":"wsName","in":"query","description":"Name of the websocket","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribeAsyncGetByWSName","api_endpoint":"https://api.voicegain.ai/v1/asr/transcribe"},"summary":"Poll by WS name","description":"Poll speech transcription in async mode using the Websocket name.","security":[{"bearerAuth":[]}]},"post":{"tags":["Transcribe"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribePost","api_endpoint":"https://api.voicegain.ai/v1/asr/transcribe"},"summary":"Sync Transcribe","description":"Synchronous Transcription API Method.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"audio":{"type":"object","description":"Defines speech audio input source for sync transcription or sync recognition. Note that streaming into the ASR using the Sync mode is not directly possible. However, the Resource URI can be used to provide streaming input that will be pulled by the ASR.","required":true,"properties":{}},"setting":{"type":"object","description":"All the settings relevant to sync transcription tasks.","properties":{}}}},"example":{"audio":{},"setting":{}}}}}}},"/v1/asr/transcribe/status/queue":{"get":{"tags":["Transcribe"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribeStatusQueueGet","api_endpoint":"https://api.voicegain.ai/v1/asr/transcribe/status/queue"},"summary":"Transcribe Queue Status","description":"Return status of the transcription queue for this account (the account is identified by the JWT token or HMAC).","security":[{"bearerAuth":[]}]}},"/v1/asr/transcribe/async":{"post":{"tags":["Transcribe"],"parameters":[{"name":"contextId","in":"query","description":"Context Id. Only needed if making a request without JWT but using MAC Access Authentication instead.","schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribeAsyncPost","api_endpoint":"https://api.voicegain.ai/v1/asr/transcribe/async"},"summary":"Async Transcribe","description":"Start speech transcription in asynchronous mode. Obtain results later.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"audio":{"type":"object","description":"Defines audio input for transcription or recognition. Note that not all audio sources are suitable for various async modes. Here are the modes supported by various audio input:","required":true,"properties":{}},"sessions":{"type":"array","description":"Initialize Async Transcription Session","required":true,"items":{"type":"string"}},"settings":{"type":"object","description":"All the settings relevant to async transcription tasks.","properties":{}}}},"example":{"audio":{},"sessions":[],"settings":{}}}}}}},"/v1/asr/transcribe/{sessionId}":{"delete":{"tags":["Transcribe"],"parameters":[{"name":"sessionId","in":"path","description":"ID of the session","required":true,"schema":{"type":"string","example":""}},{"name":"contextId","in":"query","description":"Context Id. Only needed if making a request without JWT but using MAC Access Authentication instead.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribeAsyncDelete","api_endpoint":"https://api.voicegain.ai/v1/asr/transcribe/{sessionId}"},"summary":"Delete Transcript","description":"Delete transcript and any captured audio (if applicable).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Transcribe"],"parameters":[{"name":"sessionId","in":"path","description":"ID of the session","required":true,"schema":{"type":"string","example":""}},{"name":"full","in":"query","description":"Controls whether full or incremental results should be returned. If full=true, and the results are not final yet, no words nor transcript will be included in the result.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"rmsInclude","in":"query","description":"If true then the response will include encoded RMS data. Not returned with incremental result responses.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"stop","in":"query","description":"Can be used to immediately stop processing of the current session. ","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["retainResults","discardResults"]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribeAsyncGet","api_endpoint":"https://api.voicegain.ai/v1/asr/transcribe/{sessionId}"},"summary":"Poll Transcript","description":"Poll results of speech transcription.","security":[{"bearerAuth":[]}]},"put":{"tags":["Transcribe"],"parameters":[{"name":"sessionId","in":"path","description":"ID of the session","required":true,"schema":{"type":"string","example":""}},{"name":"contextId","in":"query","description":"Context Id. Only needed if making a request without JWT but using MAC Access Authentication instead.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribeAsyncPut","api_endpoint":"https://api.voicegain.ai/v1/asr/transcribe/{sessionId}"},"summary":"Modify Transcribe Sess.","description":"Modify existing Transcription session","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"metadata":{"type":"array of objects","description":"Metadata passed with the request to async transcription, recognition, or Speech Analytics. Consist of a list of named string values. Names in the list have to be unique. If duplicates are provided then only the last one will be retained. ","required":true},"sessionId":{"type":"string","description":"ID of the session","required":true}}},"example":{"metadata":"","sessionId":""}}}}}},"/v1/asr/recognize":{"post":{"tags":["Recognize"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrRecognizePost","api_endpoint":"https://api.voicegain.ai/v1/asr/recognize"},"summary":"Sync Recognition","description":"Perform speech recognition in a single request.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"audio":{"type":"object","description":"Defines speech audio input source for sync transcription or sync recognition. Note that streaming into the ASR using the Sync mode is not directly possible. However, the Resource URI can be used to provide streaming input that will be pulled by the ASR.","required":true,"properties":{}},"settings":{"type":"object","description":"All the settings relevant to speech recognition tasks.","required":true,"properties":{}}}},"example":{"audio":{},"settings":{}}}}}}},"/v1/asr/recognize/async":{"get":{"tags":["Recognize"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrRecognizeAsync","api_endpoint":"https://api.voicegain.ai/v1/asr/recognize/async"},"summary":"Async Recognition","description":"Start speech recognition (grammar required). Obtain results later.","security":[{"bearerAuth":[]}]}},"/v1/asr/recognize/{sessionId}":{"get":{"tags":["Recognize"],"parameters":[{"name":"sessionId","in":"path","description":"ID of the session","required":true,"schema":{"type":"string","example":""}},{"name":"stop","in":"query","description":"Can be used to immediately stop processing of the current session. ","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrRecognizeAsyncGet","api_endpoint":"https://api.voicegain.ai/v1/asr/recognize/{sessionId}"},"summary":"Poll Recognition","description":"Poll speech recognition results.","security":[{"bearerAuth":[]}]}},"/v1/customer/asr-recognize-callback":{"post":{"tags":["STT Callback"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrRecognizeCallback","api_endpoint":"https://api.voicegain.ai/v1/customer/asr-recognize-callback"},"summary":"Recognition Callback","description":"Needs to be implemented by the user of the API on a URL of your choice.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"debug":{"type":"object","description":"Contains debug information that may be included in the response.","properties":{}},"phase":{"type":"string","description":"Phase of recognition or transcription ."},"result":{"type":"object","description":"Provides the result of async recognition","properties":{}},"session":{"type":"object","description":"Base info for the established async session.","properties":{}}}},"example":{"debug":{},"phase":"","result":{},"session":{}}}}}}},"/v1/customer/asr-transcribe-callback":{"post":{"tags":["STT Callback"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/asrTranscribeCallback","api_endpoint":"https://api.voicegain.ai/v1/customer/asr-transcribe-callback"},"summary":"Transcription Callback","description":"Needs to be implemented by the user of the API on a URL of your choice.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"audioCallback":{"type":"object","description":"Present whenever the OFFLINE transcription session was started with the audio callback option and the source audio was provided from URL. ","properties":{}},"debug":{"type":"object","description":"Contains debug information that may be included in the response.","properties":{}},"progress":{"type":"object","description":"Provides information about the progress of processing. Either incremental or full depending on the context.","properties":{}},"redactions":{"type":"array of objects","description":"Performed Redaction"},"responseType":{"type":"string","description":"Whether the result is incremental or full","required":true},"result":{"type":"object","description":"Full, i.e. non-incremental, results of transcription. The following fields should always be present:","properties":{}},"session":{"type":"object","description":"Base info for the established async session.","required":true,"properties":{}}}},"example":{"audioCallback":{},"debug":{},"progress":{},"redactions":"","responseType":"","result":{},"session":{}}}}}}},"/v1/customer/aivr-callback":{"post":{"tags":["Tel Bot Callback"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/aivrCallbackNew","api_endpoint":"https://api.voicegain.ai/v1/customer/aivr-callback"},"summary":"New Bot Session","description":"Specification of a callback method that invoked by the Voicegain Platform to indicate a start of a new Telephony Bot session to the User's dialog control logic.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"aivrAppId":{"type":"string","description":"AIVR application id on Voicegain platform","required":true},"ani":{"type":"string","description":"(only if session originated over phone) Caller phone number or sip address"},"authToken":{"type":"string","description":"Unique token that can be used to authenticate session related API requests outside of the callback or websocket. The token is valid while a session is in progress plus 5 minutes.","required":true},"callIsBeingRecorded":{"type":"boolean","description":"Whether this call is being recorded.","enum":[true,false]},"defaultVoice":{"type":"string","description":"Default TTS voice that will be used for this call unless overridden by the callback responses."},"dnis":{"type":"string","description":"(only if session originated over phone) Called phone number or sip address"},"estimatedQueueWaitSeconds":{"type":"object","description":"Estimated Queue Wait range in seconds","properties":{}},"logicType":{"type":"string","description":"AIVR Logic Type"},"media":{"type":"string","description":"AIVR Logic Media"},"sequence":{"type":"number","description":"sequential number within session of this callback or websocket message","required":true},"sid":{"type":"string","description":"AIVR session id on Voicegain platform","required":true},"startTime":{"type":"string","description":"Start time of the AIVR session","required":true},"tempCode":{"type":"string","description":""},"toBeTranscribed":{"type":"boolean","description":"Whether this call is to have a transcript.","enum":[true,false]},"userAppData":{"type":"string","description":"(optional) App specific data that was associated in the AIVR portal with this AIVR number/application."},"vars":{"type":"object","description":"(optional) Map with variables to initiate the new session.","properties":{}}}},"example":{"aivrAppId":"","ani":"","authToken":"","callIsBeingRecorded":"","defaultVoice":"","dnis":"","estimatedQueueWaitSeconds":{},"logicType":"","media":"","sequence":"","sid":"","startTime":"","tempCode":"","toBeTranscribed":"","userAppData":"","vars":{}}}}}}},"/v1/customer/aivr-callback/{csid}":{"delete":{"tags":["Tel Bot Callback"],"parameters":[{"name":"csid","in":"path","description":"ID of the AIVR session on customer's system.","required":true,"schema":{"type":"string","example":""}},{"name":"seq","in":"query","description":"Interaction sequences of the AIVR session on Voicegain system.","required":true,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/aivrCallbackDelete","api_endpoint":"https://api.voicegain.ai/v1/customer/aivr-callback/{csid}"},"summary":"End Bot Session","description":"Specification of a callback method that Voicegain Platform will use to communicate the end of a Telephony Bot Session to the User's dialog control logic.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"estimatedQueueWaitSecond":{"type":"object","description":"Estimated Queue Wait range in seconds","properties":{}},"events":{"type":"array of objects","description":"List of AIVR events that occurred since last callback"},"sid":{"type":"string","description":"AIVR session id on Voicegain platform","required":true},"vars":{"type":"object","description":"Map with user reponses collected during this AIVR session.","properties":{}}}},"example":{"estimatedQueueWaitSecond":{},"events":"","sid":"","vars":{}}}}}},"put":{"tags":["Tel Bot Callback"],"parameters":[{"name":"csid","in":"path","description":"ID of the AIVR session on customer's system.","required":true,"schema":{"type":"string","example":""}},{"name":"seq","in":"query","description":"Interaction sequences of the AIVR session on Voicegain system.","required":true,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/aivrCallbackExisting","api_endpoint":"https://api.voicegain.ai/v1/customer/aivr-callback/{csid}"},"summary":"Existing Bot Session","description":"Specification of a callback method that Voicegain Platform will use to communicate events from an existing Telephony Bot session to the User's dialog control logic.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"estimatedQueueWaitSecond":{"type":"object","description":"Estimated Queue Wait range in seconds","properties":{}},"events":{"type":"array of objects","description":"List of AIVR events that occurred since last callback"},"sid":{"type":"string","description":"AIVR session id on Voicegain platform","required":true},"vars":{"type":"object","description":"Map with user reponses collected during this AIVR session.","properties":{}}}},"example":{"estimatedQueueWaitSecond":{},"events":"","sid":"","vars":{}}}}}}},"/v1/sa":{"get":{"tags":["Speech Analytics"],"parameters":[{"name":"contextId","in":"query","description":"Context Id. Only needed if making a request without JWT but using MAC Access Authentication instead.","required":false,"schema":{"type":"string","example":""}},{"name":"detailed","in":"query","description":"If true then detailed results will be returned including per channel data. Set to false if you need the results for just the table of available results w/o detail.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"fromAllContexts","in":"query","description":"If true then results from all contexts will be retrieved","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"limit","in":"query","description":"set the maximum number of returned results","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saQuery","api_endpoint":"https://api.voicegain.ai/v1/sa"},"summary":"Query Sp. Analytics Data","description":"Get Speech Analytics data that matches filters.","security":[{"bearerAuth":[]}]},"post":{"tags":["Speech Analytics"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saPost","api_endpoint":"https://api.voicegain.ai/v1/sa"},"summary":"New Speech Analytics Ses.","description":"Create and launch new Speech Analytics Session. ","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"asr":{"type":"object","description":"ASR setting suitable for transcription for Speech Analytics.","properties":{}},"asyncMode":{"type":"string","description":"Mode for async speech analytics."},"audio":{"type":"object","description":"Defines audio input for transcription or recognition. Note that not all audio sources are suitable for various async modes. Here are the modes supported by various audio input:","properties":{}},"callReviewConfig":{"type":"string","description":"(optional) id of the Call Review (Score Card) configuration to use. The Call Review Config will be used to guide the generation of autopopulated Call Review Answers."},"creator":{"type":"string","description":"(optional) Id of the user who starts this Speech Analytics session. If invoked from Web UI then we will use identity of the logged-in user."},"label":{"type":"string","description":"Label to assign to the Speech Analytics session. May be displayed in a table to make identifying a session easier."},"metadata":{"type":"array of objects","description":"Metadata passed with the request to async transcription, recognition, or Speech Analytics. Consist of a list of named string values. Names in the list have to be unique. If duplicates are provided then only the last one will be retained. "},"notifyStompTopic":{"type":"string","description":"(optional) STOMP Topic name - if present then the entire POST /sa response will be sent over websocket to the specified STOMP topic."},"persist":{"type":"number","description":"Time (in msec) to retain the result data after processing has completed. Data can be retained indefinitely if value is -1. As long as the persist has not expired the data will be available."},"saConfig":{"type":"string","description":"id of the Speech Analytics configuration to use. If not provided then default SA Config for the context will be used.","required":true},"speakerchannels":{"type":"array of objects","description":"For stereo audio this is used to map audio channels to processing sessions and to identify which one is Agent."},"tags":{"type":"array of strings","description":"Tags associated with the Speech Analytics session. Each tag is a string with max length of 64 characters."},"topicDiscoveryConfig":{"type":"string","description":"(optional) id of the Topic Discovery configuration to use. If not provided then default Topic Discovery Config for the context will be used."},"virtualDualChannelEnabled":{"type":"boolean","description":"Applies only if the source audio is mono (1 channel). This is intended to be used in cases where we want to process a call center call that was recorded in mono.","enum":[true,false]}}},"example":{"asr":{},"asyncMode":"","audio":{},"callReviewConfig":"","creator":"","label":"","metadata":"","notifyStompTopic":"","persist":"","saConfig":"","speakerchannels":"","tags":"","topicDiscoveryConfig":"","virtualDualChannelEnabled":""}}}}}},"/v1/sa/{saSessionId}/data":{"get":{"tags":["Speech Analytics"],"parameters":[{"name":"saSessionId","in":"path","description":"Session ID for Speech Analytics","required":true,"schema":{"type":"string","example":""}},{"name":"audio","in":"query","description":"If true then original or simulated (if diarization was used) multichannel (stereo) audio will be returned.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"audioZones","in":"query","description":"If true then audioZones information will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"criteria","in":"query","description":"If true then criteria satisfied in the text will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"decibels","in":"query","description":"If this parameter has a value then the result will contain an array of decibel values for the audio data.","required":false,"schema":{"type":"number","example":""}},{"name":"emotion","in":"query","description":"If true then emotion (mood and sentiment) information will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"entities","in":"query","description":"If true then named entities spotted in the text will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"incidents","in":"query","description":"If true then list of incidents (silence, overtalk) identified in the call will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"keywords","in":"query","description":"If true then keywords spotted in the text will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"phrases","in":"query","description":"If true then phrases spotted in the text will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"summary","in":"query","description":"If true then summary data for the transcript will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"wordCloud","in":"query","description":"If true then word cloud data for the transcript will be returned","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saDataGet","api_endpoint":"https://api.voicegain.ai/v1/sa/{saSessionId}/data"},"summary":"Get Sp. Analytics Data","description":"Retrieve Speech Analytics result data.","security":[{"bearerAuth":[]}]}},"/v1/sa/{saSessionId}/status":{"get":{"tags":["Speech Analytics"],"parameters":[{"name":"saSessionId","in":"path","description":"Session ID for Speech Analytics","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saSessionStatusGet","api_endpoint":"https://api.voicegain.ai/v1/sa/{saSessionId}/status"},"summary":"Poll Sp. Analytics Ses.","description":"Get status of given speech-analytics session","security":[{"bearerAuth":[]}]}},"/v1/sa/{saSessionId}/transcript":{"get":{"tags":["Speech Analytics"],"parameters":[{"name":"saSessionId","in":"path","description":"Session ID for Speech Analytics","required":true,"schema":{"type":"string","example":""}},{"name":"format","in":"query","description":"Specifies the format of the transcript to be returned. Valid values are:","required":false,"schema":{"type":"string","example":""}},{"name":"interval","in":"query","description":"Applicable only to plain text transcript. Determines interval (in seconds) between time stamps.","required":false,"schema":{"type":"number","example":""}},{"name":"width","in":"query","description":"Applicable only to captions. Determines max caption width in number of characters.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saGetTranscript","api_endpoint":"https://api.voicegain.ai/v1/sa/{saSessionId}/transcript"},"summary":"SA Transcript Content","description":"Retrieve transcript from Speech Analytics session (after transcription is complete) in one of several possible formats.","security":[{"bearerAuth":[]}]}},"/v1/sa/config":{"get":{"tags":["Speech Analytics"],"parameters":[{"name":"type","in":"query","description":"Speech Analytics Configuration Type - user, built-in, or any (any is a union of user and built-in)","required":false,"schema":{"type":"string","example":""}},{"name":"contextId","in":"query","description":"Context Id. Only needed if making a request without JWT but using MAC Access Authentication instead.","required":false,"schema":{"type":"string","example":""}},{"name":"inclOtherContextPublished","in":"query","description":"If true then will also retrieve Speech Analytics Configurations from other contexts on this account which have been published.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"name","in":"query","description":"Name to match. If the provided name ends with a star * then a prefix match will be performed.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saConfigPost","api_endpoint":"https://api.voicegain.ai/v1/sa/config"},"summary":"Query Sp. Analytics Cfg.","description":"Create new Speech Analytics Configuration ","security":[{"bearerAuth":[]}]}},"/v1/sa/config/{saConfigId}":{"delete":{"tags":["Speech Analytics"],"parameters":[{"name":"saConfigId","in":"path","description":"Configuration ID for Speech Analytics","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saConfigDelete","api_endpoint":"https://api.voicegain.ai/v1/sa/config/{saConfigId}"},"summary":"Delete SA Cfg.","description":"Delete Speech Analytics configuration for given id","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Speech Analytics"],"parameters":[{"name":"saConfigId","in":"path","description":"Configuration ID for Speech Analytics","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saConfigGet","api_endpoint":"https://api.voicegain.ai/v1/sa/config/{saConfigId}"},"summary":"Get Sp. Analytics Cfg.","description":"Get Speech Analytics configuration for given id.","security":[{"bearerAuth":[]}]},"put":{"tags":["Speech Analytics"],"parameters":[{"name":"saConfigId","in":"path","description":"Configuration ID for Speech Analytics","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/saConfigPut","api_endpoint":"https://api.voicegain.ai/v1/sa/config/{saConfigId}"},"summary":"Mod Sp. Analytics Cfg.","description":"Modify existing Speech Analytics Configuration. ","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"age":{"type":"boolean","description":"(future functionality) Set to true to enable speaker age estimation","enum":[true,false]},"callResolutionCriteria":{"type":"array of strings","description":"(beta) list of tags of the Criteria used to determine if the call was resolved. If any of these criteria are satisfied then the call will be considered as resolved."},"callResolutionQuestionId":{"type":"string","description":"(beta) id of the crQuestionId in Call Review that identifies question and answer regarding Call Resolution"},"competitorKeywordGroups":{"type":"array of strings ","description":"(internal use - for Speech Analytics UI) Set of one or more keyword group tags that should be interpreted as identifying competitor mentions."},"contextId":{"type":"string","description":"(Needed only if making a request using MAC Authentication. Otherwise will be taken from JWT.)"},"criteria":{"type":"array of objects","description":"Criteria to be detected Each Criterion cofiguration contains a list of SubCriteria that need to be satisfied. All SubCriteria within the list must be satisfied for the list to return true."},"entities":{"type":"array of any","description":"Selection of Named Entity types to detect."},"gender":{"type":"boolean","description":"(not available for real-time mode yet) Set to true to enable voice gender classifcation","enum":[true,false]},"keyword":{"type":"array of objects","description":"Configuration that specifies keywords to be detected. The keyword detection algorithm uses text matching with simple text manipulations like e.g. stemming."},"keywordGroup":{"type":"array of objects","description":"Keyword groups - Group tags must be different from the tags used for keywords. One use for keyword groups is that the GET /sa/call-stats API supports reporting stats of keywords within a Group."},"meetingMinutes":{"type":"object","description":"Controls the generation of the Meeting minutes.","properties":{}},"moods":{"type":"array of any","description":"Choose the moods to report."},"overtalkSingleDurationMaximumThreshold":{"type":"number","description":"Duration-based threshold (in milliseconds) used to determine if an overtalk incident has occured. Applies to maximun duration of single/individual cases of overtalk."},"overtalkTotalPercentageThreshold":{"type":"number","description":"Percentage-based threshold used to determine if an overtalk incident has occured. Applies to total overtalk expressed as percentage of the call duration."},"phraseGroup":{"type":"array of objects","description":"Group of phrases/intents. Can be used to detect combinations of phrases in the caller."}}},"example":{"age":"","callResolutionCriteria":"","callResolutionQuestionId":"","competitorKeywordGroups":"","contextId":"","criteria":"","entities":"","gender":"","keyword":"","keywordGroup":"","meetingMinutes":{},"moods":"","overtalkSingleDurationMaximumThreshold":"","overtalkTotalPercentageThreshold":"","phraseGroup":""}}}}}},"/v1/text/redact":{"post":{"tags":["Text"],"parameters":[{"name":"contextId","in":"query","description":"Context Id. Only needed if making a request without JWT but using MAC Access Authentication instead.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://console.voicegain.ai/api/v1/index.html#operation/textRedactPost","api_endpoint":"https://api.voicegain.ai/v1/text/redact"},"summary":"Redact Text","description":"Methods for working text text inputs.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"callResolutionCriteria":{"type":"array of strings","description":"(beta) list of tags of the Criteria used to determine if the call was resolved. If any of these criteria are satisfied then the call will be considered as resolved."},"callResolutionQuestionId":{"type":"string","description":"(beta) id of the crQuestionId in Call Review that identifies question and answer regarding Call Resolution"},"competitorKeywordGroups":{"type":"array of strings ","description":"(internal use - for Speech Analytics UI) Set of one or more keyword group tags that should be interpreted as identifying competitor mentions."},"contextId":{"type":"string","description":"(Needed only if making a request using MAC Authentication. Otherwise will be taken from JWT.)"},"criteria":{"type":"array of objects","description":"Criteria to be detected Each Criterion cofiguration contains a list of SubCriteria that need to be satisfied. All SubCriteria within the list must be satisfied for the list to return true."},"debug":{"type":"string","description":""},"entities":{"type":"array of any","description":"Selection of Named Entity types to detect."},"gender":{"type":"boolean","description":"(not available for real-time mode yet) Set to true to enable voice gender classifcation","enum":[true,false]},"keyword":{"type":"array of objects","description":"Configuration that specifies keywords to be detected. The keyword detection algorithm uses text matching with simple text manipulations like e.g. stemming."},"keywordGroup":{"type":"array of objects","description":"Keyword groups - Group tags must be different from the tags used for keywords. One use for keyword groups is that the GET /sa/call-stats API supports reporting stats of keywords within a Group."},"meetingMinutes":{"type":"object","description":"Controls the generation of the Meeting minutes.","properties":{}},"moods":{"type":"array of any","description":"Choose the moods to report."},"overtalkSingleDurationMaximumThreshold":{"type":"number","description":"Duration-based threshold (in milliseconds) used to determine if an overtalk incident has occured. Applies to maximun duration of single/individual cases of overtalk."},"overtalkTotalPercentageThreshold":{"type":"number","description":"Percentage-based threshold used to determine if an overtalk incident has occured. Applies to total overtalk expressed as percentage of the call duration."},"phraseGroup":{"type":"array of objects","description":"Group of phrases/intents. Can be used to detect combinations of phrases in the caller."}}},"example":{"callResolutionCriteria":"","callResolutionQuestionId":"","competitorKeywordGroups":"","contextId":"","criteria":"","debug":"","entities":"","gender":"","keyword":"","keywordGroup":"","meetingMinutes":{},"moods":"","overtalkSingleDurationMaximumThreshold":"","overtalkTotalPercentageThreshold":"","phraseGroup":""}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}