curl --silent --show-error --fail-with-body --request GET \
--url 'https://api.example.com/api/admin/live-chat' \
--header 'Authorization: Bearer YOUR_API_KEY'
{
"conversations": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"subject": "Replacement tent pole set",
"updatedAt": "2026-08-31T14:22:05Z",
"customer": "string",
"messageCount": 1,
"preview": "string",
"liveChat": {
"status": "ai",
"operatorId": "string",
"operatorName": "string",
"leaseExpiresAt": "2026-08-31T14:22:05Z"
},
"canReply": true,
"noteCount": 1,
"lastCustomerMessageId": "string",
"lastCustomerMessageAt": "string",
"awaitingReply": true,
"waitingSince": "2026-08-31T14:22:05Z"
}
],
"scanned": 1,
"windowLimit": 500
}
List native operator conversations
Scans the latest 500 active threads in the shared store, then filters by verified tenant ownership. Ownerless legacy threads are excluded…
GET
/
api
/
admin
/
live-chat
curl --silent --show-error --fail-with-body --request GET \
--url 'https://api.example.com/api/admin/live-chat' \
--header 'Authorization: Bearer YOUR_API_KEY'
{
"conversations": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"subject": "Replacement tent pole set",
"updatedAt": "2026-08-31T14:22:05Z",
"customer": "string",
"messageCount": 1,
"preview": "string",
"liveChat": {
"status": "ai",
"operatorId": "string",
"operatorName": "string",
"leaseExpiresAt": "2026-08-31T14:22:05Z"
},
"canReply": true,
"noteCount": 1,
"lastCustomerMessageId": "string",
"lastCustomerMessageAt": "string",
"awaitingReply": true,
"waitingSince": "2026-08-31T14:22:05Z"
}
],
"scanned": 1,
"windowLimit": 500
}
Scans the latest 500 active threads in the shared store, then filters by verified tenant ownership. Ownerless legacy threads are excluded. This bounded inbox is not a historical archive. Requires WIDGET_LIVE_CHAT_ENABLED=true, an admin bearer key and verified thread ownership. Responses use Cache-Control: no-store. Mutations share the customer/AI thread execution lease. Limited to 120 requests/minute per credential (shared with Redis when configured).
Response
object
Status codes
| Code | Meaning |
|---|---|
200 | Persisted result |
401 | Missing or invalid admin key |
404 | Thread not found in the authenticated organization |
409 | Claim, content-ID, note-limit or thread lease conflict |
429 | Rate limit exceeded |
503 | Live chat disabled or persistence unavailable |
Using this contract
Read the source OpenAPI document for declared schemas and alternatives. This page also includes documented corrections from the spec overlays. Example IDs and values are illustrative; replace them with records from your workspace.curl --silent --show-error --fail-with-body --request GET \
--url 'https://api.example.com/api/admin/live-chat' \
--header 'Authorization: Bearer YOUR_API_KEY'
{
"conversations": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"subject": "Replacement tent pole set",
"updatedAt": "2026-08-31T14:22:05Z",
"customer": "string",
"messageCount": 1,
"preview": "string",
"liveChat": {
"status": "ai",
"operatorId": "string",
"operatorName": "string",
"leaseExpiresAt": "2026-08-31T14:22:05Z"
},
"canReply": true,
"noteCount": 1,
"lastCustomerMessageId": "string",
"lastCustomerMessageAt": "string",
"awaitingReply": true,
"waitingSince": "2026-08-31T14:22:05Z"
}
],
"scanned": 1,
"windowLimit": 500
}
Last modified on November 13, 2026