Skip to main content
Use the Recordings REST API when you need stable recording resources or transcript output from an organization API key. This is the supported path for new recording and transcript integrations.
Base URL:
The GraphQL API is being deprecated for customer integrations. Move recording and transcript reads to the REST endpoints below. GraphQL interview.monologues is deprecated as of Wednesday, July 1, 2026.

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 exposes interview.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.
When type is omitted, the API returns utterance.

Utterance response

Monologue response

Transcript entries do not include internal database IDs. Use recordingId, startSec, endSec, and speaker as the stable public fields for rendering and synchronization.

Legacy GraphQL transcript migration

Move transcript reads to GET /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.