curl --request GET \
--url https://api.anam.ai/v1/sessions/{id}/transcript \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.anam.ai/v1/sessions/{id}/transcript"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.anam.ai/v1/sessions/{id}/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anam.ai/v1/sessions/{id}/transcript",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.anam.ai/v1/sessions/{id}/transcript"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.anam.ai/v1/sessions/{id}/transcript")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anam.ai/v1/sessions/{id}/transcript")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sessionId": "00000000-0000-0000-0000-000000000000",
"personaName": "Cara",
"startTime": "2026-04-20T09:00:00.000Z",
"endTime": "2026-04-20T09:12:34.000Z",
"durationMs": 754000,
"totalMessages": 6,
"transcriptsEnabled": true,
"messages": [
{
"role": "persona",
"message": "Hi! How can I help?",
"timestamp": "2026-04-20T09:00:01.000Z",
"speakingDurationSeconds": 1.4,
"wasInterrupted": false
},
{
"role": "user",
"message": "Can you tell me a joke?",
"timestamp": "2026-04-20T09:00:05.000Z",
"speakingDurationSeconds": 2.1
}
]
}get session transcript
Returns the conversation transcript for a session. Transcripts are never returned for zero-data-retention sessions, including to Anam-internal admin API keys. Admin keys may fetch transcripts for non-ZDR sessions of any organization.
curl --request GET \
--url https://api.anam.ai/v1/sessions/{id}/transcript \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.anam.ai/v1/sessions/{id}/transcript"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.anam.ai/v1/sessions/{id}/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anam.ai/v1/sessions/{id}/transcript",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.anam.ai/v1/sessions/{id}/transcript"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.anam.ai/v1/sessions/{id}/transcript")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anam.ai/v1/sessions/{id}/transcript")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sessionId": "00000000-0000-0000-0000-000000000000",
"personaName": "Cara",
"startTime": "2026-04-20T09:00:00.000Z",
"endTime": "2026-04-20T09:12:34.000Z",
"durationMs": 754000,
"totalMessages": 6,
"transcriptsEnabled": true,
"messages": [
{
"role": "persona",
"message": "Hi! How can I help?",
"timestamp": "2026-04-20T09:00:01.000Z",
"speakingDurationSeconds": 1.4,
"wasInterrupted": false
},
{
"role": "user",
"message": "Can you tell me a joke?",
"timestamp": "2026-04-20T09:00:05.000Z",
"speakingDurationSeconds": 2.1
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Session ID
Response
Successfully retrieved transcript
The session ID
Name of the persona in the session
Session start time
Session end time
Session duration in milliseconds
Total number of messages in the transcript
Whether transcripts were enabled for this session. When false (sessionOptions.dataRetention.transcripts or sessionReplay.enableSessionReplay set to false), each message reads TRANSCRIPTS_DISABLED.
Show child attributes
Show child attributes
Was this page helpful?

