Skip to main content

Calls

The list is paginated (count, next, previous, results); the detail route returns one record in the standard envelope. Both are scoped to your organization, so filters cannot reach past it. A record includes call_id, protocol, from_number, to_number, start_time, end_time, call_duration_seconds, status, transcript, transcript_object, sentiment, who_hung_up, resolved, notes, call_analysis, and call_recording_url. Callers holding only call_logs.view_limited see the record without its transcript, numbers, analysis, notes, or recording URL.

Chats

The same shape, for chat transcripts: a paginated list and a detail record in the standard envelope, both scoped to your organization.

Recordings

call_recording_url on a call record is the authorized URL on the current API host:
The response is the audio itself: audio/ogg for recordings Drive Health stored and audio/wav for recordings fetched from the telephony provider, so read the Content-Type header. The API builds the URL from the current request rather than returning the environment-specific host stored when the call ended, which keeps restored records on the environment serving them. Authorization runs through the parent call: requesting the recording of a call your organization does not own fetches nothing and answers 400 with Call record not found.
Browser playback needs an authenticated fetch from your backend. Do not place the organization key in an <audio src> or a link. Fetch or proxy the audio server-side, then give the browser a short-lived URL or a blob response that does not expose the key.