Gladia Live V2 API
The Live V2 API from Gladia — 3 operation(s) for live v2.
The Live V2 API from Gladia — 3 operation(s) for live v2.
openapi: 3.0.3
info:
title: Gladia Control AudioToText Live V2 API
description: Gladia AI audio infrastructure API for speech-to-text transcription via REST and WebSocket. Supports asynchronous pre-recorded audio processing and real-time live transcription with speaker diarization, automatic language detection across 100+ languages, and audio intelligence features.
version: '1.0'
contact: {}
servers:
- url: https://api.gladia.io/
description: Gladia API production URL
tags:
- name: Live V2
paths:
/v2/live:
post:
operationId: StreamingController_initStreamingSession_v2
parameters:
- name: region
required: false
in: query
description: The region used to process the audio.
schema:
$ref: '#/components/schemas/StreamingSupportedRegions'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StreamingRequest'
responses:
'201':
description: The live job has been initiated
content:
application/json:
schema:
$ref: '#/components/schemas/InitStreamingResponse'
'400':
description: Something is wrong with the request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorResponse'
'401':
description: You don't have the permissions to initiate a new live job
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
'422':
description: The parameters you gave are incorrect
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityErrorResponse'
security:
- x_gladia_key: []
summary: Initiate a new live job
tags:
- Live V2
get:
operationId: StreamingController_getStreamingJobs_v2
parameters:
- name: offset
required: false
in: query
description: The starting point for pagination. A value of 0 starts from the first item.
schema:
minimum: 0
default: 0
type: integer
- name: limit
required: false
in: query
description: The maximum number of items to return. Useful for pagination and controlling data payload size.
schema:
minimum: 1
default: 20
type: integer
- name: date
required: false
in: query
description: Filter items relevant to a specific date in ISO format (YYYY-MM-DD).
schema:
format: date-time
example: '2026-06-12'
type: string
- name: before_date
required: false
in: query
description: Include items that occurred before the specified date in ISO format.
schema:
format: date-time
example: '2026-06-12T21:00:09.947Z'
type: string
- name: after_date
required: false
in: query
description: Filter for items after the specified date. Use with `before_date` for a range. Date in ISO format.
schema:
format: date-time
example: '2026-06-12T21:00:09.947Z'
type: string
- name: status
required: false
in: query
description: Filter the list based on item status. Accepts multiple values from the predefined list.
schema:
example:
- done
type: array
items:
type: string
enum:
- queued
- processing
- done
- error
- name: custom_metadata
required: false
in: query
schema:
additionalProperties: true
example:
user: John Doe
type: object
responses:
'200':
description: A list of live jobs matching the parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ListStreamingResponse'
'401':
description: You don't have the permissions to access live jobs
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
security:
- x_gladia_key: []
summary: Get live jobs based on query parameters
tags:
- Live V2
/v2/live/{id}:
get:
operationId: StreamingController_getStreamingJob_v2
parameters:
- name: id
required: true
in: path
description: Id of the live job
schema:
example: 45463597-20b7-4af7-b3b3-f5fb778203ab
type: string
responses:
'200':
description: The live job's metadata
content:
application/json:
schema:
$ref: '#/components/schemas/StreamingResponse'
'401':
description: You don't have the permissions to access the live job
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
'404':
description: The live job doesn't exist or has been deleted
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorResponse'
security:
- x_gladia_key: []
summary: Get the live job's metadata
tags:
- Live V2
delete:
operationId: StreamingController_deleteStreamingJob_v2
parameters:
- name: id
required: true
in: path
description: Id of the live job
schema:
example: 45463597-20b7-4af7-b3b3-f5fb778203ab
type: string
responses:
'202':
description: The live job has been successfully deleted
'401':
description: You don't have the permissions to delete this live job
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
'403':
description: The live job is not in a deletable state
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorResponse'
'404':
description: The live job doesn't exist or has been deleted
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorResponse'
security:
- x_gladia_key: []
summary: Delete the live job
tags:
- Live V2
patch:
operationId: StreamingController_patchRequestParams_v2
parameters:
- name: id
required: true
in: path
description: Id of the live job
schema:
example: 45463597-20b7-4af7-b3b3-f5fb778203ab
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchRequestParamsDTO'
responses:
'204':
description: Successfully patched the job
'400':
description: Something is wrong with the request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorResponse'
'401':
description: You don't have the permissions to update the job
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
'404':
description: The live job doesn't exist or has been deleted
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorResponse'
'413':
description: The post_request_metadata parameter must be a json object no longer that 100kb
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadTooLargeErrorResponse'
security:
- x_gladia_key: []
summary: For debugging purposes, send post session metadata in the request params of the job
tags:
- Live V2
/v2/live/{id}/file:
get:
operationId: StreamingController_getAudio_v2
parameters:
- name: id
required: true
in: path
description: Id of the live job
schema:
example: 45463597-20b7-4af7-b3b3-f5fb778203ab
type: string
responses:
'200':
description: The audio file used for this live job
content:
application/octet-stream:
schema:
type: string
format: binary
example: <binary>
'401':
description: You don't have the permissions to access this live job or its audio file
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
'404':
description: The live job or its audio file doesn't exist or has been deleted
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorResponse'
security:
- x_gladia_key: []
summary: Download the audio file used for this live job
tags:
- Live V2
components:
schemas:
PostProcessingConfig:
type: object
properties:
summarization:
type: boolean
description: If true, generates summarization for the whole transcription.
default: false
summarization_config:
description: Summarization configuration, if `summarization` is enabled
allOf:
- $ref: '#/components/schemas/SummarizationConfigDTO'
chapterization:
type: boolean
description: If true, generates chapters for the whole transcription.
default: false
StreamingSupportedBitDepthEnum:
type: number
enum:
- 8
- 16
- 24
- 32
description: The bit depth of the audio stream
NamedEntityRecognitionResult:
type: object
properties:
entity_type:
type: string
text:
type: string
start:
type: number
end:
type: number
required:
- entity_type
- text
- start
- end
NamedEntityRecognitionDTO:
type: object
properties:
success:
type: boolean
description: The audio intelligence model succeeded to get a valid output
is_empty:
type: boolean
description: The audio intelligence model returned an empty value
exec_time:
type: number
description: Time audio intelligence model took to complete the task
error:
description: '`null` if `success` is `true`. Contains the error details of the failed model'
nullable: true
allOf:
- $ref: '#/components/schemas/AddonErrorDTO'
results:
description: If `named_entity_recognition` has been enabled, the detected entities.
nullable: true
type: array
items:
$ref: '#/components/schemas/NamedEntityRecognitionResult'
required:
- success
- is_empty
- exec_time
- error
- results
WordDTO:
type: object
properties:
word:
type: string
description: Spoken word
start:
type: number
description: Start timestamps in seconds of the spoken word
end:
type: number
description: End timestamps in seconds of the spoken word
confidence:
type: number
description: Confidence on the transcribed word (1 = 100% confident)
required:
- word
- start
- end
- confidence
SummarizationConfigDTO:
type: object
properties:
type:
description: The type of summarization to apply
default: general
allOf:
- $ref: '#/components/schemas/SummaryTypesEnum'
InitStreamingResponse:
type: object
properties:
id:
type: string
description: Id of the job
format: uuid
example: 45463597-20b7-4af7-b3b3-f5fb778203ab
created_at:
type: string
description: Creation date
format: date-time
example: '2023-12-28T09:04:17.210Z'
url:
type: string
description: The websocket url to connect to for sending audio data. The url will contain the temporary token to authenticate the session.
example: wss://api.gladia.io/v2/live?token=4a39145c-2844-4557-8f34-34883f7be7d9
format: uri
required:
- id
- created_at
- url
PatchRequestParamsDTO:
type: object
properties: {}
SummarizationDTO:
type: object
properties:
success:
type: boolean
description: The audio intelligence model succeeded to get a valid output
is_empty:
type: boolean
description: The audio intelligence model returned an empty value
exec_time:
type: number
description: Time audio intelligence model took to complete the task
error:
description: '`null` if `success` is `true`. Contains the error details of the failed model'
nullable: true
allOf:
- $ref: '#/components/schemas/AddonErrorDTO'
results:
type: string
description: If `summarization` has been enabled, summary of the transcription
nullable: true
required:
- success
- is_empty
- exec_time
- error
- results
TranscriptionLanguageCodeEnum:
type: string
enum:
- af
- am
- ar
- as
- az
- ba
- be
- bg
- bn
- bo
- br
- bs
- ca
- cs
- cy
- da
- de
- el
- en
- es
- et
- eu
- fa
- fi
- fo
- fr
- gl
- gu
- ha
- haw
- he
- hi
- hr
- ht
- hu
- hy
- id
- is
- it
- ja
- jw
- ka
- kk
- km
- kn
- ko
- la
- lb
- ln
- lo
- lt
- lv
- mg
- mi
- mk
- ml
- mn
- mr
- ms
- mt
- my
- ne
- nl
- nn
- 'no'
- oc
- pa
- pl
- ps
- pt
- ro
- ru
- sa
- sd
- si
- sk
- sl
- sn
- so
- sq
- sr
- su
- sv
- sw
- ta
- te
- tg
- th
- tk
- tl
- tr
- tt
- uk
- ur
- uz
- vi
- yi
- yo
- zh
description: Specify the language in which it will be pronounced when sound comparison occurs. Default to transcription language.
SentimentAnalysisDTO:
type: object
properties:
success:
type: boolean
description: The audio intelligence model succeeded to get a valid output
is_empty:
type: boolean
description: The audio intelligence model returned an empty value
exec_time:
type: number
description: Time audio intelligence model took to complete the task
error:
description: '`null` if `success` is `true`. Contains the error details of the failed model'
nullable: true
allOf:
- $ref: '#/components/schemas/AddonErrorDTO'
results:
type: string
description: If `sentiment_analysis` has been enabled, Gladia will analyze the sentiments and emotions of the audio
required:
- success
- is_empty
- exec_time
- error
- results
UnprocessableEntityErrorResponse:
type: object
properties:
timestamp:
type: string
description: Date of when the error occurred
example: '2023-12-28T09:04:17.210Z'
path:
type: string
description: Path to the API endpoint
example: /v2/transcription/45463597-20b7-4af7-b3b3-f5fb778203ab
request_id:
type: string
description: Debug id
example: G-821fe9df
statusCode:
type: number
description: HTTP status code of the error
example: 422
message:
type: string
description: Error message
example: Invalid parameter
required:
- timestamp
- path
- request_id
- statusCode
- message
FileResponse:
type: object
properties:
id:
type: string
description: The file id
filename:
type: string
nullable: true
description: The name of the uploaded file
source:
type: string
nullable: true
description: The link used to download the file if audio_url was used
audio_duration:
type: number
nullable: true
description: Duration of the audio file
example: 3600
number_of_channels:
type: integer
nullable: true
description: Number of channels in the audio file
minimum: 1
example: 1
required:
- id
- filename
- source
- audio_duration
- number_of_channels
NotFoundErrorResponse:
type: object
properties:
timestamp:
type: string
description: Date of when the error occurred
example: '2023-12-28T09:04:17.210Z'
path:
type: string
description: Path to the API endpoint
example: /v2/transcription/45463597-20b7-4af7-b3b3-f5fb778203ab
request_id:
type: string
description: Debug id
example: G-821fe9df
statusCode:
type: number
description: HTTP status code of the error
example: 404
message:
type: string
description: Error message
example: Not found
required:
- timestamp
- path
- request_id
- statusCode
- message
StreamingSupportedSampleRateEnum:
type: number
enum:
- 8000
- 16000
- 32000
- 44100
- 48000
description: The sample rate of the audio stream
StreamingSupportedRegions:
type: string
enum:
- us-west
- eu-west
StreamingRequestParamsResponse:
type: object
properties:
encoding:
description: "The encoding format of the audio stream. Supported formats: \n- PCM: 8, 16, 24, and 32 bits \n- A-law: 8 bits \n- μ-law: 8 bits \n\nNote: No need to add WAV headers to raw audio as the API supports both formats."
default: wav/pcm
allOf:
- $ref: '#/components/schemas/StreamingSupportedEncodingEnum'
bit_depth:
description: The bit depth of the audio stream
default: 16
allOf:
- $ref: '#/components/schemas/StreamingSupportedBitDepthEnum'
sample_rate:
description: The sample rate of the audio stream
default: 16000
allOf:
- $ref: '#/components/schemas/StreamingSupportedSampleRateEnum'
channels:
type: integer
description: The number of channels of the audio stream
default: 1
minimum: 1
maximum: 8
model:
description: The model used to process the audio. "solaria-1" is used by default.
default: solaria-1
allOf:
- $ref: '#/components/schemas/StreamingSupportedModels'
endpointing:
type: number
description: The endpointing duration in seconds. Endpointing is the duration of silence which will cause an utterance to be considered as finished
default: 0.05
minimum: 0.01
maximum: 10
maximum_duration_without_endpointing:
type: number
description: The maximum duration in seconds without endpointing. If endpointing is not detected after this duration, current utterance will be considered as finished
default: 5
minimum: 5
maximum: 60
language_config:
description: Specify the language configuration
allOf:
- $ref: '#/components/schemas/LanguageConfig'
pre_processing:
description: Specify the pre-processing configuration
allOf:
- $ref: '#/components/schemas/PreProcessingConfig'
realtime_processing:
description: Specify the realtime processing configuration
allOf:
- $ref: '#/components/schemas/RealtimeProcessingConfig'
post_processing:
description: Specify the post-processing configuration
allOf:
- $ref: '#/components/schemas/PostProcessingConfig'
messages_config:
description: Specify the websocket messages configuration
allOf:
- $ref: '#/components/schemas/MessagesConfig'
callback:
type: boolean
description: If true, messages will be sent to configured url.
default: false
callback_config:
description: Specify the callback configuration
allOf:
- $ref: '#/components/schemas/CallbackConfig'
StreamingSupportedEncodingEnum:
type: string
enum:
- wav/pcm
- wav/alaw
- wav/ulaw
description: "The encoding format of the audio stream. Supported formats: \n- PCM: 8, 16, 24, and 32 bits \n- A-law: 8 bits \n- μ-law: 8 bits \n\nNote: No need to add WAV headers to raw audio as the API supports both formats."
BadRequestErrorResponse:
type: object
properties:
timestamp:
type: string
description: Date of when the error occurred
example: '2023-12-28T09:04:17.210Z'
path:
type: string
description: Path to the API endpoint
example: /v2/transcription/45463597-20b7-4af7-b3b3-f5fb778203ab
request_id:
type: string
description: Debug id
example: G-821fe9df
statusCode:
type: number
description: HTTP status code of the error
example: 400
message:
type: string
description: Error message
example: Content-Type is missing Multipart Boundary.
validation_errors:
description: List of validation errors, if any
example:
- Field "language" must be a string
- Field "min_speakers" must be a number
type: array
items:
type: string
required:
- timestamp
- path
- request_id
- statusCode
- message
RealtimeProcessingConfig:
type: object
properties:
custom_vocabulary:
type: boolean
description: If true, enable custom vocabulary for the transcription.
default: false
custom_vocabulary_config:
description: Custom vocabulary configuration, if `custom_vocabulary` is enabled
allOf:
- $ref: '#/components/schemas/CustomVocabularyConfigDTO'
custom_spelling:
type: boolean
description: If true, enable custom spelling for the transcription.
default: false
custom_spelling_config:
description: Custom spelling configuration, if `custom_spelling` is enabled
allOf:
- $ref: '#/components/schemas/CustomSpellingConfigDTO'
translation:
type: boolean
description: If true, enable translation for the transcription
default: false
translation_config:
description: Translation configuration, if `translation` is enabled
allOf:
- $ref: '#/components/schemas/TranslationConfigDTO'
named_entity_recognition:
type: boolean
description: If true, enable named entity recognition for the transcription.
default: false
sentiment_analysis:
type: boolean
description: If true, enable sentiment analysis for the transcription.
default: false
UtteranceDTO:
type: object
properties:
start:
type: number
description: Start timestamp in seconds of this utterance
end:
type: number
description: End timestamp in seconds of this utterance
confidence:
type: number
description: Confidence on the transcribed utterance (1 = 100% confident)
channel:
type: integer
description: Audio channel of where this utterance has been transcribed from
minimum: 0
speaker:
type: integer
description: If `diarization` enabled, speaker identification number
minimum: 0
words:
description: List of words of the utterance, split by timestamp
type: array
items:
$ref: '#/components/schemas/WordDTO'
text:
type: string
description: Transcription for this utterance
language:
description: Spoken language in this utterance
example: en
allOf:
- $ref: '#/components/schemas/TranscriptionLanguageCodeEnum'
required:
- start
- end
- confidence
- channel
- words
- text
- language
PreProcessingConfig:
type: object
properties:
audio_enhancer:
type: boolean
description: If true, apply pre-processing to the audio stream to enhance the quality.
default: false
speech_threshold:
type: number
description: Sensitivity configuration for Speech Threshold. A value close to 1 will apply stricter thresholds, making it less likely to detect background sounds as speech.
default: 0.6
minimum: 0
maximum: 1
SubtitleDTO:
type: object
properties:
format:
description: Format of the current subtitle
example: srt
allOf:
- $ref: '#/components/schemas/SubtitlesFormatEnum'
subtitles:
type: string
description: Transcription on the asked subtitle format
required:
- format
- subtitles
TranscriptionDTO:
type: object
properties:
full_transcript:
type: string
description: All transcription on text format without any other information
languages:
type: array
description: All the detected languages in the audio sorted from the most detected to the less detected
example:
- en
items:
$ref: '#/components/schemas/TranscriptionLanguageCodeEnum'
sentences:
description: If `sentences` has been enabled, sentences results
type: array
items:
$ref: '#/components/schemas/SentencesDTO'
subtitles:
description: If `subtitles` has been enabled, subtitles results
type: array
items:
$ref: '#/components/schemas/SubtitleDTO'
utterances:
description: Transcribed speech utterances present in the audio
type: array
items:
$ref: '#/components/schemas/UtteranceDTO'
required:
- full_transcript
- languages
- utterances
CustomVocabularyConfigDTO:
type: object
properties:
vocabulary:
type: array
description: 'Specific vocabulary list to feed the transcription model with. Each item can be a string or an object with the following properties: value, intensity, pronunciations, language.'
example:
- Westeros
- value: Stark
- value: Night's Watch
pronunciations:
- Nightz Watch
intensity: 0.4
language: en
items:
oneOf:
- $ref: '#/components/schemas/CustomVocabularyEntryDTO'
- type: string
default_intensity:
type: number
description: Default intensity for the custom vocabulary
example: 0.5
minimum: 0
maximum: 1
required:
- vocabulary
MessagesConfig:
type: object
properties:
receive_partial_transcripts:
type: boolean
description: If true, partial transcript will be sent to websocket.
default: false
receive_final_transcripts:
type: boolean
description: If true, final transcript will be sent to websocket.
default: true
receive_speech_events:
type: boolean
description: If true, begin and end speech events will be sent to websocket.
default: true
receive_pre_processing_events:
type: boolean
description: If true, pre-processing events will be sent to websocket.
default: true
receive_realtime_processing_events:
type: boolean
description: If true, realtime processing events will be sent to websocket.
default: true
receive_post_processing_events:
type: boolean
description: If true, post-processing events will be sent to websocket.
default: true
receive_acknowledgments:
type: boolean
description: If true, acknowledgments will be sent to websocket.
default: true
receive_errors:
type: boolean
description: If true, errors will be sent to websocket.
default: true
receive_lifecycle_events:
type: boolean
description: If true, lifecycle events will be sent to websocket.
default: false
StreamingResponse:
type: object
properties:
id:
type: string
description: Id of the job
format: uuid
example: 45463597-20b7-4af7-b3b3-f5fb778203ab
request_id:
type: string
description: Debug id
example: G-45463597
version:
type: integer
description: API version
example: 2
status:
type: string
description: '"queued": the job has been queued. "processing": the job is being processed. "done": the job has been processed and the result is available. "error": an error occurred during the job''s processing.'
enum:
- queued
- processing
- done
- error
created_at:
type: string
description: Creation date
format: date-time
example: '2023-12-28T09:04:17.210Z'
completed_at:
type: string
description: Completion date when status is "done" or "error"
format: date-time
example: '2023-12-28T09:04:37.210Z'
nullable: true
custom_metadata:
type: object
description: Custom metadata given in the initial request
example:
user: John Doe
additionalProperties: true
error_code:
type: integer
description: HTTP status code of the error if status is "error"
minimum: 400
maximum: 599
example: 500
nullable: true
post_session_metadata:
type: object
description: For debugging purposes, send data that could help to identify issues
kind:
type: string
enum:
- live
example: live
default: live
file:
description: The file data you uploaded. Can be null if status is "error"
nullable: true
allOf:
- $ref: '#/components/schemas/FileResponse'
request_params:
description: Parameters used for this live transcription. Can be null if status is "error"
nullable: true
allOf:
- $ref: '#/components/schemas/StreamingRequestParamsResponse'
# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gladia/refs/heads/main/openapi/gladia-live-v2-api-openapi.yml