List threads
curl --request POST \
--url https://api.livechatinc.com/v3.6/customer/action/list_threads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chat_id": "PWJ8Y4THAV"
}
'import requests
url = "https://api.livechatinc.com/v3.6/customer/action/list_threads"
payload = { "chat_id": "PWJ8Y4THAV" }
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({chat_id: 'PWJ8Y4THAV'})
};
fetch('https://api.livechatinc.com/v3.6/customer/action/list_threads', 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://api.livechatinc.com/v3.6/customer/action/list_threads",
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([
'chat_id' => 'PWJ8Y4THAV'
]),
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://api.livechatinc.com/v3.6/customer/action/list_threads"
payload := strings.NewReader("{\n \"chat_id\": \"PWJ8Y4THAV\"\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://api.livechatinc.com/v3.6/customer/action/list_threads")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chat_id\": \"PWJ8Y4THAV\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.livechatinc.com/v3.6/customer/action/list_threads")
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 \"chat_id\": \"PWJ8Y4THAV\"\n}"
response = http.request(request)
puts response.read_body{
"threads": [
{
"id": "K600PKZON8",
"created_at": "2026-06-17T07:57:41.512000Z",
"active": true,
"user_ids": [
"b7eff798-f8df-4364-8059-649c35c9ed0c",
"bbb67d600796e9f277e360e842418833"
],
"events": [
{
"id": "Q20N9CKRX2_1",
"created_at": "2026-06-17T07:57:41.512000Z",
"recipients": "all",
"type": "message",
"text": "Hello",
"author_id": "bbb67d600796e9f277e360e842418833"
}
],
"properties": {},
"access": {
"group_ids": [
0
]
},
"previous_thread_id": "K600PKZOM8",
"next_thread_id": "K600PKZOO8"
}
],
"found_threads": 42,
"next_page_id": "MTUxNzM5ODEzMTQ5Ng==",
"previous_page_id": "MTUxNzM5ODEzMTQ5Nw=="
}Chats
List threads
Returns threads that the current customer has access to in a given chat.
POST
/
action
/
list_threads
List threads
curl --request POST \
--url https://api.livechatinc.com/v3.6/customer/action/list_threads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chat_id": "PWJ8Y4THAV"
}
'import requests
url = "https://api.livechatinc.com/v3.6/customer/action/list_threads"
payload = { "chat_id": "PWJ8Y4THAV" }
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({chat_id: 'PWJ8Y4THAV'})
};
fetch('https://api.livechatinc.com/v3.6/customer/action/list_threads', 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://api.livechatinc.com/v3.6/customer/action/list_threads",
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([
'chat_id' => 'PWJ8Y4THAV'
]),
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://api.livechatinc.com/v3.6/customer/action/list_threads"
payload := strings.NewReader("{\n \"chat_id\": \"PWJ8Y4THAV\"\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://api.livechatinc.com/v3.6/customer/action/list_threads")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chat_id\": \"PWJ8Y4THAV\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.livechatinc.com/v3.6/customer/action/list_threads")
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 \"chat_id\": \"PWJ8Y4THAV\"\n}"
response = http.request(request)
puts response.read_body{
"threads": [
{
"id": "K600PKZON8",
"created_at": "2026-06-17T07:57:41.512000Z",
"active": true,
"user_ids": [
"b7eff798-f8df-4364-8059-649c35c9ed0c",
"bbb67d600796e9f277e360e842418833"
],
"events": [
{
"id": "Q20N9CKRX2_1",
"created_at": "2026-06-17T07:57:41.512000Z",
"recipients": "all",
"type": "message",
"text": "Hello",
"author_id": "bbb67d600796e9f277e360e842418833"
}
],
"properties": {},
"access": {
"group_ids": [
0
]
},
"previous_thread_id": "K600PKZOM8",
"next_thread_id": "K600PKZOO8"
}
],
"found_threads": 42,
"next_page_id": "MTUxNzM5ODEzMTQ5Ng==",
"previous_page_id": "MTUxNzM5ODEzMTQ5Nw=="
}Authorizations
Customer access token obtained from the customer authorization flow.
Query Parameters
Unique identifier of the organization.
Body
application/json
The chat ID.
asc— oldest threads firstdesc— newest threads first
Available options:
asc, desc Maximum number of records per page. Cannot be used together with min_events_count.
Required range:
x <= 100Pagination token. Cannot be used together with min_events_count.
Minimum number of events to return across threads. Returns as many latest threads as needed to meet this condition. Cannot be used together with limit or page_id.
Required range:
1 <= x <= 100Response
200 - application/json
Threads.
Array of thread objects.
Show child attributes
Show child attributes
Total number of found threads.
The pagination token for the next page.
The pagination token for the previous page.
Was this page helpful?