List contacts
Lists Contact summaries in the verified Organization under contacts:read. The optional query searches names and identity addresses in the same cursor-paginated collection, replacing the former standalone search operation. It performs no writes and is safe to retry with the same cursor and filters.
curl --request GET \
--url https://api.getarbol.com/v1/contacts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getarbol.com/v1/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.getarbol.com/v1/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"createdAt": "2026-08-29T14:30:00Z",
"familyName": "<string>",
"givenName": "<string>",
"id": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"lastAgentId": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"lastContactedAt": "2026-08-29T14:30:00Z",
"primaryEmail": "<string>",
"primaryPhone": "<string>"
}
],
"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 <= 100Only Contacts created at or after this instant.
^(?:(?:\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"
Only Contacts created before this instant; the bound is exclusive.
^(?:(?:\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"
Direction used by an explicitly selected resource sort.
asc, desc "desc"
Case-insensitive Contact search across names and tenant-owned identity addresses.
1 - 200"Marta Rojas"
Stable sort field for Contact collection pages.
createdAt, name, lastContactedAt "createdAt"
Response
OK
One page of Contact 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 - 4096Contacts matching the filters across every page.
0 <= x <= 9007199254740991curl --request GET \
--url https://api.getarbol.com/v1/contacts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getarbol.com/v1/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.getarbol.com/v1/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"createdAt": "2026-08-29T14:30:00Z",
"familyName": "<string>",
"givenName": "<string>",
"id": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"lastAgentId": "agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31",
"lastContactedAt": "2026-08-29T14:30:00Z",
"primaryEmail": "<string>",
"primaryPhone": "<string>"
}
],
"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"
]
}
}