get session transcript
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.
GET
/
v1
/
sessions
/
{id}
/
transcript
get session transcript
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
Show child attributes
Show child attributes
Last modified on September 4, 2026
Was this page helpful?

