Get agent logs
curl --request POST \
--url https://api.getkarta.ai/public/v1/agent/logs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"page": 1,
"size": 20,
"agent_id": "agentexample",
"call_status": "ended",
"call_direction": "inbound",
"call_start_timestamp": "2026-10-01T00:00:00Z",
"call_end_timestamp": "2026-10-06T23:59:59Z"
}
'import requests
url = "https://api.getkarta.ai/public/v1/agent/logs"
payload = {
"page": 1,
"size": 20,
"agent_id": "agentexample",
"call_status": "ended",
"call_direction": "inbound",
"call_start_timestamp": "2026-10-01T00:00:00Z",
"call_end_timestamp": "2026-10-06T23:59:59Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
page: 1,
size: 20,
agent_id: 'agentexample',
call_status: 'ended',
call_direction: 'inbound',
call_start_timestamp: '2026-10-01T00:00:00Z',
call_end_timestamp: '2026-10-06T23:59:59Z'
})
};
fetch('https://api.getkarta.ai/public/v1/agent/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"call_id": "example-call-id",
"agent_id": "agentexample",
"call_status": "ended",
"call_direction": "inbound",
"session_duration": 58,
"talktime_duration": 47,
"billing_amount": 1.25,
"billed_quantity": 60,
"call_start_timestamp": "2026-10-06T10:00:00Z",
"call_end_timestamp": "2026-10-06T10:00:47Z"
}
],
"pagination": {
"page": 1,
"size": 20,
"has_more": false
}
}Agents
Get agent logs
Search call logs to review agent activity and troubleshoot calls.
POST
/
agent
/
logs
Get agent logs
curl --request POST \
--url https://api.getkarta.ai/public/v1/agent/logs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"page": 1,
"size": 20,
"agent_id": "agentexample",
"call_status": "ended",
"call_direction": "inbound",
"call_start_timestamp": "2026-10-01T00:00:00Z",
"call_end_timestamp": "2026-10-06T23:59:59Z"
}
'import requests
url = "https://api.getkarta.ai/public/v1/agent/logs"
payload = {
"page": 1,
"size": 20,
"agent_id": "agentexample",
"call_status": "ended",
"call_direction": "inbound",
"call_start_timestamp": "2026-10-01T00:00:00Z",
"call_end_timestamp": "2026-10-06T23:59:59Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
page: 1,
size: 20,
agent_id: 'agentexample',
call_status: 'ended',
call_direction: 'inbound',
call_start_timestamp: '2026-10-01T00:00:00Z',
call_end_timestamp: '2026-10-06T23:59:59Z'
})
};
fetch('https://api.getkarta.ai/public/v1/agent/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"call_id": "example-call-id",
"agent_id": "agentexample",
"call_status": "ended",
"call_direction": "inbound",
"session_duration": 58,
"talktime_duration": 47,
"billing_amount": 1.25,
"billed_quantity": 60,
"call_start_timestamp": "2026-10-06T10:00:00Z",
"call_end_timestamp": "2026-10-06T10:00:47Z"
}
],
"pagination": {
"page": 1,
"size": 20,
"has_more": false
}
}All filters are optional and go directly in the request body. Unknown fields and custom-analysis filters return
400.
Results are sorted by session start time, newest first. Increase page while pagination.has_more is true. Keep the same size and filters.
No matches or size: 0 returns an empty data array with pagination.has_more: false.
See review agent logs for examples.Body
application/json