List conversations
Lists Conversation summaries and Contact display projections in the verified Organization under conversations:read and contacts:read. It performs no writes and is safe to retry with the same cursor and filters.
curl --request GET \
--url https://api.getarbol.com/v1/conversations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getarbol.com/v1/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.getarbol.com/v1/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"agentId": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"channelKind": "voice",
"closeReason": "completed",
"contactId": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"direction": "inbound",
"durationSeconds": 4503599627370495,
"endedAt": "2026-08-29T14:30:00Z",
"id": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"language": "<string>",
"lastMessageAt": "2026-08-29T14:30:00Z",
"messageCount": 4503599627370495,
"originKind": "manual",
"outcome": "success",
"sentiment": "neutral",
"startedAt": "2026-08-29T14:30:00Z",
"status": "open",
"summary": "<string>",
"title": "<string>",
"contactName": "<string>",
"contactPhone": "<string>",
"hasRecording": true
}
],
"nextCursor": "<string>",
"total": 4503599627370495
}{
"defined": true,
"inferable": true,
"code": "BAD_REQUEST",
"status": 400,
"message": "<string>",
"data": {
"issues": [
{
"code": "custom",
"message": "<string>",
"path": [
"<string>"
]
}
],
"truncated": true
}
}{
"defined": true,
"inferable": true,
"code": "UNAUTHORIZED",
"status": 401,
"message": "<string>",
"data": "<unknown>"
}{
"defined": true,
"inferable": true,
"code": "FORBIDDEN",
"status": 403,
"message": "<string>",
"data": {
"missingPermissions": [
"agents:read"
]
}
}Authorizations
Organization-scoped Auth0 user access token issued to an approved first-party client or exchanged by a trusted OBO resource server.
Query Parameters
Opaque forward-only cursor returned as nextCursor by the previous page. Never construct one by hand.
1 - 4096Page size; defaults to 25 and never exceeds 100.
1 <= x <= 1001 - 50 elementsOpaque Arbol resource identifier; the endpoint and tenant-scoped lookup determine its resource type.
64^[a-z][a-z0-9]{1,15}_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$1 - 6 elementsConversation transport family.
voice, whatsapp, web Opaque Arbol resource identifier; the endpoint and tenant-scoped lookup determine its resource type.
64^[a-z][a-z0-9]{1,15}_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31"
Direction of a Conversation relative to the organization.
inbound, outbound "inbound"
With factKey: only Conversations whose current Fact under this Definition matches the key.
64^[a-z][a-z0-9]{1,15}_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31"
Option id, or true/false for a boolean Definition.
1 - 200Direction used by an explicitly selected resource sort.
asc, desc "desc"
Source that created the Conversation record.
inbound, manual, automation, import, test "manual"
Success evaluation aggregated from the applicable Conversation assessment criteria.
success, failure, unknown "success"
Matches title, summary, the Contact's name, and its identity addresses.
1 - 200"Marta Rojas"
Coarse sentiment assigned to a Conversation.
positive, neutral, negative "neutral"
Stable sort field for Conversation collection pages.
startedAt, createdAt, lastMessageAt, durationSeconds, messageCount "startedAt"
ISO 8601 timestamp with an explicit UTC offset.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$"2026-08-29T14:30:00Z"
Exclusive upper bound on startedAt.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$"2026-08-29T14:30:00Z"
1 - 2 elementsDurable lifecycle state of a Conversation.
open, closed Response
OK
One page of Conversation summaries with the filtered total.
100Show child attributes
Show child attributes
Opaque forward-only cursor returned as nextCursor by the previous page. Never construct one by hand.
1 - 4096Conversations matching the filters across every page.
0 <= x <= 9007199254740991curl --request GET \
--url https://api.getarbol.com/v1/conversations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getarbol.com/v1/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.getarbol.com/v1/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"agentId": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"channelKind": "voice",
"closeReason": "completed",
"contactId": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"direction": "inbound",
"durationSeconds": 4503599627370495,
"endedAt": "2026-08-29T14:30:00Z",
"id": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"language": "<string>",
"lastMessageAt": "2026-08-29T14:30:00Z",
"messageCount": 4503599627370495,
"originKind": "manual",
"outcome": "success",
"sentiment": "neutral",
"startedAt": "2026-08-29T14:30:00Z",
"status": "open",
"summary": "<string>",
"title": "<string>",
"contactName": "<string>",
"contactPhone": "<string>",
"hasRecording": true
}
],
"nextCursor": "<string>",
"total": 4503599627370495
}{
"defined": true,
"inferable": true,
"code": "BAD_REQUEST",
"status": 400,
"message": "<string>",
"data": {
"issues": [
{
"code": "custom",
"message": "<string>",
"path": [
"<string>"
]
}
],
"truncated": true
}
}{
"defined": true,
"inferable": true,
"code": "UNAUTHORIZED",
"status": 401,
"message": "<string>",
"data": "<unknown>"
}{
"defined": true,
"inferable": true,
"code": "FORBIDDEN",
"status": 403,
"message": "<string>",
"data": {
"missingPermissions": [
"agents:read"
]
}
}