List sessions
/v2/live Your account's sessions, newest first, one page at a time.
Authentication: your API key in the x-gladia-key header (Authentication).
Example
curl https://eu1.api.gladia.io/v2/live \ -H "x-gladia-key: $GLADIA_API_KEY"import os
from gladiaio_sdk import GladiaClient
client = GladiaClient( api_key=os.environ["GLADIA_API_KEY"], api_url=os.environ.get("GLADIA_API_URL", "https://eu1.api.gladia.io"),)
page = client.live_v2().list({"limit": 20, "status": ["done"]})for session in page.items: print(session.id, session.created_at)import { GladiaClient } from "@gladiaio/sdk";
const client = new GladiaClient({ apiKey: process.env.GLADIA_API_KEY, apiUrl: process.env.GLADIA_API_URL ?? "https://eu1.api.gladia.io",});
const page = await client.liveV2().list({ limit: 20, status: ["done"] });for (const session of page.items) console.log(session.id, session.created_at);Try it
Parameters
-
limitinteger · querySessions per page, at most 100.
default:
20· 1 to 100 -
offsetinteger · querySessions to skip, at most 1000; past that, follow
next.default:
0· 0 to 1000 -
cursorstring · queryWhere the next page starts: set in
next, never by hand. -
datestring · queryOnly the sessions created that day (
2026-10-12). -
after_datestring · queryOnly the sessions created after that date (ISO 8601).
-
before_datestring · queryOnly the sessions created before that date (ISO 8601).
-
statusarray of string · queryOnly the sessions with these statuses (repeat it for several).
-
custom_metadatastring · queryOnly the sessions whose
custom_metadatahas these values: a JSON object ({"user": "john"}), orcustom_metadata[user]=john.
Responses
200 A page of sessions.
-
firststring requiredURL of the first page.
-
currentstring requiredURL of this page.
-
nextstring requiredURL of the next page (it carries a
cursor),nullon the last page. -
itemsarray of object requiredThe sessions, newest first.
12 fields
-
idstring requiredIdentifier of the session.
-
request_idstring requiredIdentifier to quote to support.
-
version2default:
2 -
statusstring requiredqueued: created, no WebSocket yet;processing: streaming (or dropped and still resumable);done: ended, the result is there;error: the session failed.one of:
queued,processing,done,error -
created_atstring requiredCreation date (ISO 8601, UTC).
-
completed_atstring requiredEnd date, once
doneorerror. -
custom_metadataobject requiredThe init body's
custom_metadata. -
error_codeinteger required500when the session failed, elsenull. -
kind"live"default:
"live" -
fileobject requiredThe session's audio, once it ended.
5 fields
-
idstring requiredIdentifier of the session.
-
filenamestring requiredName of the recording,
nullwhen the audio was not recorded. -
sourcestring requiredDownload URL of the recording (
GET /v2/live/{id}/file),nullwhen not recorded. -
audio_durationnumber requiredAudio received, in seconds.
-
number_of_channelsinteger required
-
-
request_paramsobject requiredThe session's options, as validated.
-
resultobject requiredThe transcript, once
done.4 fields
-
metadataobject required4 fields
-
audio_durationnumber requiredAudio received, in seconds.
-
billing_timenumber requiredBilled duration, in seconds.
-
number_of_distinct_channelsinteger requiredNumber of audio channels.
-
transcription_timenumber requiredHow long the session ran, in seconds.
-
-
transcriptionobject required3 fields
-
languagesarray of string requiredLanguages heard, in order of appearance.
-
utterancesarray of object requiredEvery final utterance, by start time.
11 fields
-
textstring requiredThe transcript. With named entity recognition or PII redaction on, it carries their inline elements (
<ner:name id="1">…</ner:name>,<pii:email id="1"/>). -
startnumber requiredStart, in seconds from the start of the audio.
-
endnumber requiredEnd, in seconds from the start of the audio.
-
languagestring requiredLanguage spoken (ISO 639-1).
-
confidencenumber requiredConfidence, from 0 to 1.
-
channelinteger requiredAudio channel the utterance was heard on, from 0.
-
speakerintegerSpeaker number, with
diarization.default:
null -
wordsarray of object requiredThe words with their timestamps.
-
text_rawstringThe transcript without inline elements (with named entity recognition; never with PII redaction).
default:
null -
entitiesarray of objectThe entities of the utterance, with named entity recognition or PII redaction.
default:
null -
forced"max_duration"Set when the utterance was closed by
maximum_duration_without_endpointingrather than by a pause.default:
null
-
-
full_transcriptstring requiredThe final utterances' text, joined.
-
-
translationobjectWith
realtime_processing.translation.default:
null5 fields
-
successboolean required -
is_emptyboolean requiredtruewhen nothing was translated. -
exec_timenumber required -
erroranydefault:
null -
resultsarray of object requiredOne result per target language.
6 fields
-
erroranyAlways
null.default:
null -
languagesarray of string requiredThe target language of this result.
-
full_transcriptstring requiredThe translated text, joined.
-
utterancesarray of object requiredThe translated utterances, one per final.
-
sentencesarray of any requiredAlways empty.
-
subtitlesarray of any requiredAlways empty.
-
-
-
messagesarray of any requiredThe final transcript messages, as sent on the WebSocket.
-
-
{ "first": "string", "current": "string", "next": "string", "items": [ { "id": "0199d7a2-5c3e-7b41-9f0a-3c2d1e4f5a6b", "request_id": "G-0199d7a2", "version": 2, "status": "queued", "created_at": "string", "completed_at": "string", "custom_metadata": {}, "error_code": 0, "kind": "live", "file": { "id": "string", "filename": "string", "source": "string", "audio_duration": 0.5, "number_of_channels": 0 }, "request_params": {}, "result": { "metadata": { "audio_duration": 0.5, "billing_time": 0.5, "number_of_distinct_channels": 0, "transcription_time": 0.5 }, "transcription": { "languages": [], "utterances": [], "full_transcript": "string" }, "translation": { "success": false, "is_empty": false, "exec_time": 0.5, "error": null, "results": [] }, "messages": [ null ] } } ]} 400 The request is invalid: validation_errors lists why.
{ "statusCode": 400, "timestamp": "2026-10-12T09:04:17.210Z", "path": "/v2/live", "message": "Invalid parameter(s). See validation_errors for more details.", "request_id": "G-1a2b3c4d", "validation_errors": [ "sample_rate Input should be 8000, 16000, 32000, 44100 or 48000" ], "error": "string"}401 No API key, or an unknown one.
{ "statusCode": 400, "timestamp": "2026-10-12T09:04:17.210Z", "path": "/v2/live", "message": "Invalid parameter(s). See validation_errors for more details.", "request_id": "G-1a2b3c4d", "validation_errors": [ "sample_rate Input should be 8000, 16000, 32000, 44100 or 48000" ], "error": "string"}403 The key may not do this (its scopes, or the addresses it may be used from).
{ "statusCode": 400, "timestamp": "2026-10-12T09:04:17.210Z", "path": "/v2/live", "message": "Invalid parameter(s). See validation_errors for more details.", "request_id": "G-1a2b3c4d", "validation_errors": [ "sample_rate Input should be 8000, 16000, 32000, 44100 or 48000" ], "error": "string"}503 The service cannot answer right now: try again.
{ "statusCode": 400, "timestamp": "2026-10-12T09:04:17.210Z", "path": "/v2/live", "message": "Invalid parameter(s). See validation_errors for more details.", "request_id": "G-1a2b3c4d", "validation_errors": [ "sample_rate Input should be 8000, 16000, 32000, 44100 or 48000" ], "error": "string"}