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",
"forwardedTo": null,
"error": null
}
],
"nextCursor": "MjAyNi0xMC0wNlQwNDozMDowMi4xMThafDNiN2UxYzkw"
}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",
"forwardedTo": null,
"error": null
}
],
"nextCursor": "MjAyNi0xMC0wNlQwNDozMDowMi4xMThafDNiN2UxYzkw"
}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. Refused with 404 (Workspace not found.) when the id is unknown, is not one of your customers, or is not an org_… id; 410 when that customer was deleted (restore it with POST /customers/{id}/restore until it is erased); 403 when the key belongs to one customer workspace (it cannot act as another); 400 when your workspace is not a developer workspace. /customers/* and GET /customers/usage are your own workspace's and refuse the header with 400: call them without it.
"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, from midnight UTC) or instant (2026-09-17T10:00:00Z).
"2026-10-01"
Only calls that started at or before this date or instant. A bare date (2026-10-06) includes that whole day, UTC; give an offset (2026-10-06T23:59:59+05:30) for a different day boundary.
"2026-10-06T23:59:59+05:30"