MYLO Transcripts
Fetch speaker turns, timestamps, duration, and the recording for any finished MYLO voice session.
GET https://api.sagea.space/mylo/sessions/{session_id}/transcript
Call after the session ends or after the call reaches a terminal state for complete turns.
Authentication
Send Authorization: Bearer $SAGEA_API_KEY on every request. Get a key
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | Session ID from create, path parameter |
format | string | No | Response shape, json by default with turn-level timing |
include_recording | boolean | No | Set true to include recording_url in the response |
language | string | No | Hint such as ne-NP for mixed Nepali and English sessions |
Transcripts mix Nepali and English exactly as spoken, preserving code-switching for audit and QA.
Use started_at and ended_at offsets to align turns with analytics or subtitle rendering.
Recording URLs are signed and expire, so download promptly or export turns to your own store.
Response
A ready transcript returns 200 with ordered turns, total duration, and an optional recording URL.
Speakers are agent or user, with float second offsets from session start.
Empty turns never appear, and overlapping speech is split into separate ordered entries.
Errors
| Status | Code | Fix |
|---|---|---|
| 404 | session_not_found | Check the session ID and account scope |
| 404 | transcript_not_ready | Wait for session end, then retry with backoff |
| 401 | unauthorized | Verify SAGEA_API_KEY and header formatting |
| 429 | rate_limit_exceeded | Cache transcripts instead of polling in a loop |
Limits
Transcripts retained 90 days, recording URLs expire after 24 hours, 30 fetches per minute per session.
