curl --request GET \
--url https://app.thinnest.ai/api/v1/calls \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/calls', 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"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"id": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"callRef": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"reference": "LSQ-42",
"metadata": {
"deal_id": "D-19",
"owner": "Ravi"
},
"attempt": 1,
"status": "completed",
"direction": "outbound",
"phone": "919876543210",
"from": "918045678901",
"agent": {
"id": "ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71",
"name": "Skyline Sales"
},
"scheduledFor": null,
"startedAt": "2026-10-06T04:30:02.118Z",
"answeredAt": "2026-10-06T04:30:09.540Z",
"endedAt": "2026-10-06T04:33:11.902Z",
"seconds": 182,
"hangup": "answered",
"variables": {
"lead_name": "Asha",
"project": "Sky Towers"
},
"summary": "Asha is keen on a 2 BHK at Sky Towers with a budget around 80 lakh. She asked to visit the site on Saturday.",
"fields": {
"budget": 8000000,
"interest": "Hot",
"site_visit": true
},
"analysedAt": "2026-10-06T04:33:20.311Z",
"error": null
}
],
"nextCursor": "MjAyNi0xMC0wNlQwNDozMDowMi4xMThafDNiN2UxYzkw"
}{
"error": "`status` must be one of ringing, connected, completed, missed, failed."
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}List Calls
Every call your workspace made or took — inbound, website, WhatsApp, a campaign’s or one you placed — newest first, without transcripts or recordings. Each item’s id opens the call with Get Call. A call booked for later appears here only once it has rung; read a booked call by the sch_… id Place Call gave you.
curl --request GET \
--url https://app.thinnest.ai/api/v1/calls \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/calls', 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"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"id": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"callRef": "out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60",
"reference": "LSQ-42",
"metadata": {
"deal_id": "D-19",
"owner": "Ravi"
},
"attempt": 1,
"status": "completed",
"direction": "outbound",
"phone": "919876543210",
"from": "918045678901",
"agent": {
"id": "ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71",
"name": "Skyline Sales"
},
"scheduledFor": null,
"startedAt": "2026-10-06T04:30:02.118Z",
"answeredAt": "2026-10-06T04:30:09.540Z",
"endedAt": "2026-10-06T04:33:11.902Z",
"seconds": 182,
"hangup": "answered",
"variables": {
"lead_name": "Asha",
"project": "Sky Towers"
},
"summary": "Asha is keen on a 2 BHK at Sky Towers with a budget around 80 lakh. She asked to visit the site on Saturday.",
"fields": {
"budget": 8000000,
"interest": "Hot",
"site_visit": true
},
"analysedAt": "2026-10-06T04:33:20.311Z",
"error": null
}
],
"nextCursor": "MjAyNi0xMC0wNlQwNDozMDowMi4xMThafDNiN2UxYzkw"
}{
"error": "`status` must be one of ringing, connected, completed, missed, failed."
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"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"
Query Parameters
How many items to return, 1 to 100.
1 <= x <= 100The nextCursor from the previous page. Leave it out for the first page.
Only this agent's calls — its ag_… id.
"ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71"
Only calls in this state.
ringing, connected, completed, missed, failed "completed"
Only calls placed with this reference — your CRM's own id for the lead. Matched exactly; up to 200 characters are read.
200"LSQ-42"
Only calls that started at or after this date (2026-09-17) or instant (2026-09-17T10:00:00Z).
"2026-10-01"
Only calls that started at or before this date or instant.
"2026-10-06T23:59:59+05:30"