Recording IDs
Recording IDs are transitioning from internal BigInt IDs to public UUIDs. REST recording endpoints accept and return the public UUID value. GraphQL still exposesinterview.id as a BigInt for existing legacy queries. If your integration currently stores GraphQL BigInt IDs, plan to store the public recording UUID as you migrate REST recording reads. New and backfilled public IDs are UUIDv7 values.
Get a recording
GET /recordings/{recordingId}
Fetch one recording by public UUID.Response:
asset_uri is never returned. asset_url is derived from the stored asset URI at request time and should be treated as a presigned URL that may expire.
Get a transcript
GET /recordings/{recordingId}/transcript
Fetch transcript text for one recording. Use the optional
type query parameter to choose the transcript shape.type can be:utterance: sentence-level transcript rows.monologue: contiguous same-speaker transcript rows.
type is omitted, the API returns utterance.Utterance response
Monologue response
recordingId, startSec, endSec, and speaker as the stable public fields for rendering and synchronization.
Legacy GraphQL transcript migration
Move transcript reads toGET /recordings/{recordingId}/transcript. During the transition, existing GraphQL integrations should avoid interview.monologues and use sentence-backed relationships on interview, such as sentences or transcript_segments, ordered by start_sec.
If you need contiguous same-speaker blocks, call the REST transcript endpoint with type=monologue.