curl --request GET \
--url https://app.thinnest.ai/api/v1/calls/{id}/transcript \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/calls/{id}/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/calls/{id}/transcript"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"callRef": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"status": "completed",
"agent": {
"id": "ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71",
"name": "Skyline Sales"
},
"startedAt": "2026-10-06T04:30:02.118Z",
"endedAt": "2026-10-06T04:33:11.902Z",
"turns": [
{
"speaker": "agent",
"text": "Hello Asha, I'm calling from Skyline Homes about your enquiry for Sky Towers.",
"at": "2026-10-06T04:30:10.204Z",
"offset": 8
},
{
"speaker": "customer",
"text": "Haan, boliye. I wanted a 2 BHK.",
"at": "2026-10-06T04:30:16.880Z",
"offset": 15
}
]
}{
"error": "`format` must be json or txt."
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "No call with that id."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Get Call Transcript
What was said on one call, oldest first: this call’s spoken turns only, internal notes left out — the same words call.analysed delivers. ?format=txt returns a plain-text file to save (call-{id}.txt, one [mm:ss] Who: what line per turn). A turn’s offset is when it was written down, not where it falls in the audio, so it suits ordering and rough position but not subtitles.
curl --request GET \
--url https://app.thinnest.ai/api/v1/calls/{id}/transcript \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/calls/{id}/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/calls/{id}/transcript"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"callRef": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"status": "completed",
"agent": {
"id": "ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71",
"name": "Skyline Sales"
},
"startedAt": "2026-10-06T04:30:02.118Z",
"endedAt": "2026-10-06T04:33:11.902Z",
"turns": [
{
"speaker": "agent",
"text": "Hello Asha, I'm calling from Skyline Homes about your enquiry for Sky Towers.",
"at": "2026-10-06T04:30:10.204Z",
"offset": 8
},
{
"speaker": "customer",
"text": "Haan, boliye. I wanted a 2 BHK.",
"at": "2026-10-06T04:30:16.880Z",
"offset": 15
}
]
}{
"error": "`format` must be json or txt."
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "No call with that id."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Authorizations
Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.
Headers
Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.
"org_3fKq9TzQ1mN8vB2xR7cLpA"
Path Parameters
The call's id as Place Call or List Calls gave it: out_… or sch_… for a call you placed, the call reference for any other.
"out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60"
Query Parameters
json (the default) for the turns as JSON, txt for a plain-text attachment.
json, txt "json"
Response
The transcript, as JSON or, with format=txt, as a text/plain attachment.
The call's id.
The attempt that rang.
Where the call is.
scheduled, ringing, connected, completed, missed, failed, cancelled The agent on the call.
Show child attributes
Show child attributes
Show child attributes
Show child attributes