curl --request GET \
--url https://app.thinnest.ai/api/v1/recordings/{callId}const options = {method: 'GET'};
fetch('https://app.thinnest.ai/api/v1/recordings/{callId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/recordings/{callId}"
response = requests.get(url)
print(response.text)"<string>"Get Recording By Signed Link
The signed link a call report hands out as recording.url, for a CRM user to click: it needs no API key, because the signature is the permission. Use the URL exactly as the report gives it; add &download=1 to save rather than play. The link stops working at its expiresAt, which is when your plan deletes the recording. A forged link and an unknown call get the same 404. Answers are plain text, not JSON.
curl --request GET \
--url https://app.thinnest.ai/api/v1/recordings/{callId}const options = {method: 'GET'};
fetch('https://app.thinnest.ai/api/v1/recordings/{callId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/recordings/{callId}"
response = requests.get(url)
print(response.text)"<string>"Headers
A byte range, for seeking — answered with 206.
"bytes=0-"
Path Parameters
The call's id as it appears in the signed link.
"3b7e1c90-5a2d-4e8f-9c61-0d4b7a2e8f13"
Query Parameters
When the link stops working, in Unix seconds — from the link.
^\d{1,12}$"1762403402"
The link's signature — from the link.
"8c1f0e7a92b4d3c6e5f1a0b9c8d7e6f5a4b3c2d1"
1 to save the file (an attachment) rather than play it inline.
1 "1"
Response
The whole recording, as MP3. Content-Disposition is inline, or attachment with download=1.
The response is of type file.