curl --silent --show-error --fail-with-body --request POST \
--url 'https://api.example.com/api/admin/live-chat/{id}/claim' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"operatorName": "string"
}'
{
"thread": {
"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"
}
}
Take over a native conversation
Claims for two minutes under the authenticated operator key. Another active owner returns conversation_claimed…
POST
/
api
/
admin
/
live-chat
/
{id}
/
claim
curl --silent --show-error --fail-with-body --request POST \
--url 'https://api.example.com/api/admin/live-chat/{id}/claim' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"operatorName": "string"
}'
{
"thread": {
"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"
}
}
Claims for two minutes under the authenticated operator key. Another active owner returns conversation_claimed. Customer sends are acknowledged without an AI reply while the claim remains active. 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).
Path parameters
Request body
object
Nonblank operator display name; control characters are rejected. Minimum length:
1. Maximum length: 80.Response
object
Status codes
| Code | Meaning |
|---|---|
200 | Persisted result |
400 | Invalid operator name, message or note |
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 POST \
--url 'https://api.example.com/api/admin/live-chat/{id}/claim' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"operatorName": "string"
}'
{
"thread": {
"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"
}
}
Last modified on November 13, 2026