Skip to main content
POST
/
action
/
list_threads
List threads
curl --request POST \
  --url https://api.livechatinc.com/v3.6/agent/action/list_threads \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "chat_id": "PWJ8Y4THAV"
}
'
import requests

url = "https://api.livechatinc.com/v3.6/agent/action/list_threads"

payload = { "chat_id": "PWJ8Y4THAV" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({chat_id: 'PWJ8Y4THAV'})
};

fetch('https://api.livechatinc.com/v3.6/agent/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/agent/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: Basic <encoded-value>",
"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/agent/action/list_threads"

payload := strings.NewReader("{\n \"chat_id\": \"PWJ8Y4THAV\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Basic <encoded-value>")
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/agent/action/list_threads")
.header("Authorization", "Basic <encoded-value>")
.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/agent/action/list_threads")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
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",
        "smith@example.com"
      ],
      "events": [
        {
          "id": "Q20N9CKRX2_1",
          "created_at": "2026-06-17T07:57:41.512000Z",
          "visibility": "all",
          "type": "message",
          "text": "Hello",
          "author_id": "smith@example.com"
        }
      ],
      "summary": {
        "status": "ok",
        "text": "Agent greets with a short message.",
        "updated_at": "2026-06-21T07:08:16.125000Z"
      },
      "properties": {},
      "access": {
        "group_ids": [
          0
        ]
      },
      "previous_thread_id": "K600PKZOM8",
      "next_thread_id": "K600PKZOO8",
      "customer_visit": {
        "ip": "1.2.3.4",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36",
        "geolocation": {
          "latitude": "-14.6973803",
          "longitude": "-75.1266898",
          "country": "Poland",
          "country_code": "PL",
          "region": "Dolnoslaskie",
          "city": "Wroclaw",
          "timezone": "Europe/Warsaw"
        }
      }
    }
  ],
  "found_threads": 42,
  "next_page_id": "MTUxNzM5ODEzMTQ5Ng==",
  "previous_page_id": "MTUxNzM5ODEzMTQ5Nw=="
}
Required scopes: or

Authorizations

Authorization
string
header
required

Use your account ID as the username and your personal access token (PAT) as the password, or pass a Base64-encoded value directly in the Authorization header. For more information, see the personal access tokens guide.

Body

application/json
chat_id
string
required

The chat ID.

sort_order
enum<string>
default:desc

asc for oldest threads first, desc for newest threads first.

Available options:
asc,
desc
limit
integer
default:3

Maximum number of records per page. Cannot be used together with min_events_count.

Required range: x <= 100
page_id
string

Pagination token. Cannot be used together with min_events_count.

min_events_count
integer

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, page_id, or filters.

Required range: 1 <= x <= 100
filters
object

Thread filters. Cannot be used together with min_events_count.

Response

200 - application/json

Threads in the chat.

threads
object[]

Array of thread objects.

found_threads
integer

Total number of found threads.

next_page_id
string

Pagination token for the next page.

previous_page_id
string

Pagination token for the previous page.