End a conversation
curl --request POST \
--url https://app.livechatai.com/api/v2/conversations/{conversationId}/end \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "user_1234567890"
}
'import requests
url = "https://app.livechatai.com/api/v2/conversations/{conversationId}/end"
payload = { "userId": "user_1234567890" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({userId: 'user_1234567890'})
};
fetch('https://app.livechatai.com/api/v2/conversations/{conversationId}/end', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.livechatai.com/api/v2/conversations/{conversationId}/end",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'userId' => 'user_1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.livechatai.com/api/v2/conversations/{conversationId}/end"
payload := strings.NewReader("{\n \"userId\": \"user_1234567890\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.livechatai.com/api/v2/conversations/{conversationId}/end")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"user_1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.livechatai.com/api/v2/conversations/{conversationId}/end")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"userId\": \"user_1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Conversation resolved successfully",
"data": {
"conversationId": "chat_1234567890",
"userId": "user_1234567890",
"contactId": "contact_1234567890"
}
}Conversations
End a conversation
End a conversation. This endpoint allows agents to mark a conversation as resolved. If userId is not provided, the system will use the agent assigned to the chat, or if no agent is assigned, it will use the workspace owner associated with the API token.
POST
/
api
/
v2
/
conversations
/
{conversationId}
/
end
End a conversation
curl --request POST \
--url https://app.livechatai.com/api/v2/conversations/{conversationId}/end \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "user_1234567890"
}
'import requests
url = "https://app.livechatai.com/api/v2/conversations/{conversationId}/end"
payload = { "userId": "user_1234567890" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({userId: 'user_1234567890'})
};
fetch('https://app.livechatai.com/api/v2/conversations/{conversationId}/end', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.livechatai.com/api/v2/conversations/{conversationId}/end",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'userId' => 'user_1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.livechatai.com/api/v2/conversations/{conversationId}/end"
payload := strings.NewReader("{\n \"userId\": \"user_1234567890\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.livechatai.com/api/v2/conversations/{conversationId}/end")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"user_1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.livechatai.com/api/v2/conversations/{conversationId}/end")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"userId\": \"user_1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Conversation resolved successfully",
"data": {
"conversationId": "chat_1234567890",
"userId": "user_1234567890",
"contactId": "contact_1234567890"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Unique identifier of the conversation to end
Example:
"chat_1234567890"
Body
application/json
Optional user ID who is ending the conversation
ID of the user ending the conversation (optional). If not provided, uses the agent assigned to the chat, or the workspace owner if no agent is assigned.
Example:
"user_1234567890"
⌘I

