List calls
curl --request GET \
--url https://api.telleo.ai/v1/calls \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.telleo.ai/v1/calls"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.telleo.ai/v1/calls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "list",
"data": [
{
"id": "call_6f1d2c9a8b7e4f3a2d1c0b9a",
"object": "call",
"status": "queued",
"status_reason": "<string>",
"scheduled_for": "2023-11-07T05:31:56Z",
"agent_id": "<string>",
"phone_number": "<string>",
"contact": {
"name": "<string>",
"email": "[email protected]",
"external_id": "<string>"
},
"variables": {},
"metadata": {},
"batch_id": "<string>",
"test": true,
"duration_seconds": 123,
"created_at": "2023-11-07T05:31:56Z",
"dialed_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"recording_url": "<string>",
"recording_expires_at": "2023-11-07T05:31:56Z",
"outcome": {
"disposition": "<string>",
"summary": "<string>",
"answers": {},
"lead_rating": 5,
"callback_requested": true,
"callback_time_text": "<string>",
"follow_up": "CALL",
"follow_up_note": "<string>",
"meeting": {
"requested": true,
"at": "<string>",
"time_text": "<string>",
"type": "<string>"
},
"transcript": [
{
"speaker": "agent",
"text": "<string>"
}
]
},
"idempotent_replay": true
}
],
"has_more": true
}
Calls
List calls
Your calls, newest first. Filter by batch, by your external_id, or by creation time; page with starting_after.
Scope: calls:read.
GET
/
calls
List calls
curl --request GET \
--url https://api.telleo.ai/v1/calls \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.telleo.ai/v1/calls"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.telleo.ai/v1/calls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "list",
"data": [
{
"id": "call_6f1d2c9a8b7e4f3a2d1c0b9a",
"object": "call",
"status": "queued",
"status_reason": "<string>",
"scheduled_for": "2023-11-07T05:31:56Z",
"agent_id": "<string>",
"phone_number": "<string>",
"contact": {
"name": "<string>",
"email": "[email protected]",
"external_id": "<string>"
},
"variables": {},
"metadata": {},
"batch_id": "<string>",
"test": true,
"duration_seconds": 123,
"created_at": "2023-11-07T05:31:56Z",
"dialed_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"recording_url": "<string>",
"recording_expires_at": "2023-11-07T05:31:56Z",
"outcome": {
"disposition": "<string>",
"summary": "<string>",
"answers": {},
"lead_rating": 5,
"callback_requested": true,
"callback_time_text": "<string>",
"follow_up": "CALL",
"follow_up_note": "<string>",
"meeting": {
"requested": true,
"at": "<string>",
"time_text": "<string>",
"type": "<string>"
},
"transcript": [
{
"speaker": "agent",
"text": "<string>"
}
]
},
"idempotent_replay": true
}
],
"has_more": true
}
Authorizations
Your AI calling API key (vak_call_…). Authorization: Bearer <key> also works.
Query Parameters
Calls for one of your records.
ISO-8601 instant, e.g. 2026-10-13T09:00:00Z.
Required range:
1 <= x <= 100The id of the last call on the previous page.