curl https://api.kallglot.com/v1/sessions/sess_01HXYZ123456789/transcript \
-H "Authorization: Bearer sk_live_your_api_key"
import os
import requests
API_KEY = os.environ.get('KALLGLOT_API_KEY')
SESSION_ID = 'sess_01HXYZ123456789'
response = requests.get(
f'https://api.kallglot.com/v1/sessions/{SESSION_ID}/transcript',
headers={'Authorization': f'Bearer {API_KEY}'}
)
if response.status_code == 200:
transcript = response.json()
print(f"Status: {transcript['status']}")
print(f"Total turns: {transcript['metadata']['total_turns']}")
print(f"Languages: {', '.join(transcript['metadata']['languages_detected'])}")
print()
for turn in transcript['turns']:
print(f"[{turn['speaker'].upper()}] {turn['text']}")
if turn.get('translation'):
print(f" → {turn['translation']['text']}")
elif response.status_code == 404:
print('Session not found')
else:
error = response.json()
print(f"Error: {error['error']['message']}")
const API_KEY = process.env.KALLGLOT_API_KEY;
const SESSION_ID = 'sess_01HXYZ123456789';
const response = await fetch(`https://api.kallglot.com/v1/sessions/${SESSION_ID}/transcript`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const data = await response.json();
if (response.ok) {
console.log('Status:', data.status);
console.log('Total turns:', data.metadata.total_turns);
console.log('Languages:', data.metadata.languages_detected.join(', '));
console.log();
for (const turn of data.turns) {
console.log(`[${turn.speaker.toUpperCase()}] ${turn.text}`);
if (turn.translation) {
console.log(` → ${turn.translation.text}`);
}
}
} else {
console.error('Error:', data.error.message);
}
{
"id": "trn_sess_01HXYZ123456789",
"object": "transcript",
"session_id": "sess_01HXYZ123456789",
"status": "completed",
"turns": [
{
"sequence": 1,
"speaker": "agent",
"language": "en",
"text": "Hello, how can I help you?",
"timestamp": "2026-03-26T11:00:15Z"
},
{
"sequence": 2,
"speaker": "customer",
"language": "de",
"text": "Ich habe eine Frage zu meiner Bestellung.",
"translation": {
"language": "en",
"text": "I have a question about my order."
},
"timestamp": "2026-03-26T11:00:18Z"
}
],
"metadata": {
"total_turns": 2,
"duration_seconds": 180.5,
"languages_detected": ["en", "de"]
}
}
{
"error": {
"code": "session_not_found",
"message": "Session not found",
"type": "not_found_error"
}
}
Sessions
Get Transcript
Get the session transcript
GET
/
v1
/
sessions
/
{id}
/
transcript
curl https://api.kallglot.com/v1/sessions/sess_01HXYZ123456789/transcript \
-H "Authorization: Bearer sk_live_your_api_key"
import os
import requests
API_KEY = os.environ.get('KALLGLOT_API_KEY')
SESSION_ID = 'sess_01HXYZ123456789'
response = requests.get(
f'https://api.kallglot.com/v1/sessions/{SESSION_ID}/transcript',
headers={'Authorization': f'Bearer {API_KEY}'}
)
if response.status_code == 200:
transcript = response.json()
print(f"Status: {transcript['status']}")
print(f"Total turns: {transcript['metadata']['total_turns']}")
print(f"Languages: {', '.join(transcript['metadata']['languages_detected'])}")
print()
for turn in transcript['turns']:
print(f"[{turn['speaker'].upper()}] {turn['text']}")
if turn.get('translation'):
print(f" → {turn['translation']['text']}")
elif response.status_code == 404:
print('Session not found')
else:
error = response.json()
print(f"Error: {error['error']['message']}")
const API_KEY = process.env.KALLGLOT_API_KEY;
const SESSION_ID = 'sess_01HXYZ123456789';
const response = await fetch(`https://api.kallglot.com/v1/sessions/${SESSION_ID}/transcript`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const data = await response.json();
if (response.ok) {
console.log('Status:', data.status);
console.log('Total turns:', data.metadata.total_turns);
console.log('Languages:', data.metadata.languages_detected.join(', '));
console.log();
for (const turn of data.turns) {
console.log(`[${turn.speaker.toUpperCase()}] ${turn.text}`);
if (turn.translation) {
console.log(` → ${turn.translation.text}`);
}
}
} else {
console.error('Error:', data.error.message);
}
{
"id": "trn_sess_01HXYZ123456789",
"object": "transcript",
"session_id": "sess_01HXYZ123456789",
"status": "completed",
"turns": [
{
"sequence": 1,
"speaker": "agent",
"language": "en",
"text": "Hello, how can I help you?",
"timestamp": "2026-03-26T11:00:15Z"
},
{
"sequence": 2,
"speaker": "customer",
"language": "de",
"text": "Ich habe eine Frage zu meiner Bestellung.",
"translation": {
"language": "en",
"text": "I have a question about my order."
},
"timestamp": "2026-03-26T11:00:18Z"
}
],
"metadata": {
"total_turns": 2,
"duration_seconds": 180.5,
"languages_detected": ["en", "de"]
}
}
{
"error": {
"code": "session_not_found",
"message": "Session not found",
"type": "not_found_error"
}
}
Retrieve the transcript with speaker identification, timestamps, and translations.
Path Parameters
Session ID (e.g.,
sess_01HXYZ123456789).Response
Transcript identifier.
Always
transcript.Parent session ID.
in_progress (session active) or completed (session ended).Conversation turns.
Show turn properties
Show turn properties
Turn number (1-indexed).
agent or customer.Detected language code.
Original spoken text.
Turn timestamp (ISO 8601).
curl https://api.kallglot.com/v1/sessions/sess_01HXYZ123456789/transcript \
-H "Authorization: Bearer sk_live_your_api_key"
import os
import requests
API_KEY = os.environ.get('KALLGLOT_API_KEY')
SESSION_ID = 'sess_01HXYZ123456789'
response = requests.get(
f'https://api.kallglot.com/v1/sessions/{SESSION_ID}/transcript',
headers={'Authorization': f'Bearer {API_KEY}'}
)
if response.status_code == 200:
transcript = response.json()
print(f"Status: {transcript['status']}")
print(f"Total turns: {transcript['metadata']['total_turns']}")
print(f"Languages: {', '.join(transcript['metadata']['languages_detected'])}")
print()
for turn in transcript['turns']:
print(f"[{turn['speaker'].upper()}] {turn['text']}")
if turn.get('translation'):
print(f" → {turn['translation']['text']}")
elif response.status_code == 404:
print('Session not found')
else:
error = response.json()
print(f"Error: {error['error']['message']}")
const API_KEY = process.env.KALLGLOT_API_KEY;
const SESSION_ID = 'sess_01HXYZ123456789';
const response = await fetch(`https://api.kallglot.com/v1/sessions/${SESSION_ID}/transcript`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const data = await response.json();
if (response.ok) {
console.log('Status:', data.status);
console.log('Total turns:', data.metadata.total_turns);
console.log('Languages:', data.metadata.languages_detected.join(', '));
console.log();
for (const turn of data.turns) {
console.log(`[${turn.speaker.toUpperCase()}] ${turn.text}`);
if (turn.translation) {
console.log(` → ${turn.translation.text}`);
}
}
} else {
console.error('Error:', data.error.message);
}
{
"id": "trn_sess_01HXYZ123456789",
"object": "transcript",
"session_id": "sess_01HXYZ123456789",
"status": "completed",
"turns": [
{
"sequence": 1,
"speaker": "agent",
"language": "en",
"text": "Hello, how can I help you?",
"timestamp": "2026-03-26T11:00:15Z"
},
{
"sequence": 2,
"speaker": "customer",
"language": "de",
"text": "Ich habe eine Frage zu meiner Bestellung.",
"translation": {
"language": "en",
"text": "I have a question about my order."
},
"timestamp": "2026-03-26T11:00:18Z"
}
],
"metadata": {
"total_turns": 2,
"duration_seconds": 180.5,
"languages_detected": ["en", "de"]
}
}
{
"error": {
"code": "session_not_found",
"message": "Session not found",
"type": "not_found_error"
}
}
Transcripts build in real-time during active sessions.
⌘I