Get a customer's history
curl --request GET \
--url https://api.kallabot.com/v1/inbox/customers/history \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.kallabot.com/v1/inbox/customers/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kallabot.com/v1/inbox/customers/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"calls": [
{
"id": "<string>",
"direction": "<string>",
"channel": "<string>",
"lifecycle": "<string>",
"outcome": "<string>",
"disposition": "<string>",
"summary": "<string>",
"at": "<string>",
"talk_ms": 123,
"agent": {
"id": "<string>",
"name": "<string>"
}
}
],
"chats": [
{
"channel": "whatsapp",
"id": "<string>",
"connection": {
"id": "<string>",
"name": "<string>"
},
"contact": {
"name": "<string>",
"handle": "<string>",
"phone": "<string>",
"email": "<string>",
"avatar_url": "<string>"
},
"state": {
"status": "open",
"tags": [
"<string>"
],
"snoozed_until": "<string>",
"assignee": {
"user_id": "<string>",
"name": "<string>"
},
"priority": "<string>",
"done_at": "<string>"
},
"unread_count": 123,
"window": {
"open": true,
"expires_at": "<string>"
},
"sessions": [
{}
],
"agent": {
"id": "<string>",
"name": "<string>"
},
"handled_by": "<string>",
"handler": {
"user_id": "<string>",
"name": "<string>"
},
"handover_reason": "<string>",
"handover_at": "<string>",
"summary": {
"text": "<string>",
"at": "<string>"
},
"closed_at": "<string>",
"last_message": {
"preview": "<string>",
"direction": "<string>",
"author": "<string>",
"type": "<string>",
"occurred_at": "<string>"
},
"last_activity_at": "<string>",
"created_at": "<string>"
}
],
"phone": "<string>",
"email": "<string>"
}{
"type": "https://docs.kallabot.com/errors/unsupported_api_version",
"title": "Kallabot-Version names a version this API doesn't have",
"status": 400,
"code": "unsupported_api_version",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/unauthenticated",
"title": "Missing or invalid API key",
"status": 401,
"code": "unauthenticated",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/insufficient_scope",
"title": "The key lacks a required scope",
"status": 403,
"code": "insufficient_scope",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/invalid_request",
"title": "One or more fields are not valid",
"status": 422,
"code": "invalid_request",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/sdk_version_unsupported",
"title": "This SDK release is switched off: upgrade the SDK",
"status": 426,
"code": "sdk_version_unsupported",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"retryable": true
}{
"type": "https://docs.kallabot.com/errors/internal_error",
"title": "Something went wrong on our side",
"status": 500,
"code": "internal_error",
"retryable": true
}Inbox
Get a customer's history
Returns every call and chat with one customer, found by phone (E.164) or email.
Scopes: inbox:read
GET
/
v1
/
inbox
/
customers
/
history
Get a customer's history
curl --request GET \
--url https://api.kallabot.com/v1/inbox/customers/history \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.kallabot.com/v1/inbox/customers/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kallabot.com/v1/inbox/customers/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"calls": [
{
"id": "<string>",
"direction": "<string>",
"channel": "<string>",
"lifecycle": "<string>",
"outcome": "<string>",
"disposition": "<string>",
"summary": "<string>",
"at": "<string>",
"talk_ms": 123,
"agent": {
"id": "<string>",
"name": "<string>"
}
}
],
"chats": [
{
"channel": "whatsapp",
"id": "<string>",
"connection": {
"id": "<string>",
"name": "<string>"
},
"contact": {
"name": "<string>",
"handle": "<string>",
"phone": "<string>",
"email": "<string>",
"avatar_url": "<string>"
},
"state": {
"status": "open",
"tags": [
"<string>"
],
"snoozed_until": "<string>",
"assignee": {
"user_id": "<string>",
"name": "<string>"
},
"priority": "<string>",
"done_at": "<string>"
},
"unread_count": 123,
"window": {
"open": true,
"expires_at": "<string>"
},
"sessions": [
{}
],
"agent": {
"id": "<string>",
"name": "<string>"
},
"handled_by": "<string>",
"handler": {
"user_id": "<string>",
"name": "<string>"
},
"handover_reason": "<string>",
"handover_at": "<string>",
"summary": {
"text": "<string>",
"at": "<string>"
},
"closed_at": "<string>",
"last_message": {
"preview": "<string>",
"direction": "<string>",
"author": "<string>",
"type": "<string>",
"occurred_at": "<string>"
},
"last_activity_at": "<string>",
"created_at": "<string>"
}
],
"phone": "<string>",
"email": "<string>"
}{
"type": "https://docs.kallabot.com/errors/unsupported_api_version",
"title": "Kallabot-Version names a version this API doesn't have",
"status": 400,
"code": "unsupported_api_version",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/unauthenticated",
"title": "Missing or invalid API key",
"status": 401,
"code": "unauthenticated",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/insufficient_scope",
"title": "The key lacks a required scope",
"status": 403,
"code": "insufficient_scope",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/invalid_request",
"title": "One or more fields are not valid",
"status": 422,
"code": "invalid_request",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/sdk_version_unsupported",
"title": "This SDK release is switched off: upgrade the SDK",
"status": 426,
"code": "sdk_version_unsupported",
"retryable": false
}{
"type": "https://docs.kallabot.com/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"retryable": true
}{
"type": "https://docs.kallabot.com/errors/internal_error",
"title": "Something went wrong on our side",
"status": 500,
"code": "internal_error",
"retryable": true
}Authorizations
An API key from Settings → API keys, sent as Authorization: Bearer kb_live_…. A workspace key starts kb_; a personal key starts kbp_ and acts as its owner.
Headers
The API version to answer as, a date (YYYY-MM-DD). Leave it out for the current version (2026-11-07). An unknown version is refused with 400 unsupported_api_version.
Available options:
2026-11-07 Example:
"2026-11-07"
Query Parameters
Maximum string length:
32Maximum string length:
254