List conversations
curl --request GET \
--url https://api.coldsend.pro/api/public/v1/replies \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coldsend.pro/api/public/v1/replies"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coldsend.pro/api/public/v1/replies', 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.coldsend.pro/api/public/v1/replies",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coldsend.pro/api/public/v1/replies"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coldsend.pro/api/public/v1/replies")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coldsend.pro/api/public/v1/replies")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"threads": [
{
"thread_id": "<string>",
"lead_email": "<string>",
"lead_name": "<string>",
"campaign_name": "<string>",
"subject": "<string>",
"last_message_preview": "<string>",
"last_message_at": "2023-11-07T05:31:56Z",
"is_read": true,
"is_starred": true,
"reply_count": 123,
"lead_id": "<string>",
"inbox_id": "<string>",
"category": "<string>"
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123,
"has_next": true,
"has_prev": true,
"unread_count": 123,
"starred_count": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Replies
List conversations
List all reply conversations for your workspace
Returns a paginated list of incoming reply threads across all campaigns.
Filtering
- campaign_id: Restrict to a specific campaign
- status: Filter by read state —
unread,read, orstarred - search: Full-text search against lead name, lead email, and subject
Pagination
Default page size is 50, maximum is 200.
GET
/
api
/
public
/
v1
/
replies
List conversations
curl --request GET \
--url https://api.coldsend.pro/api/public/v1/replies \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coldsend.pro/api/public/v1/replies"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coldsend.pro/api/public/v1/replies', 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.coldsend.pro/api/public/v1/replies",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coldsend.pro/api/public/v1/replies"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coldsend.pro/api/public/v1/replies")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coldsend.pro/api/public/v1/replies")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"threads": [
{
"thread_id": "<string>",
"lead_email": "<string>",
"lead_name": "<string>",
"campaign_name": "<string>",
"subject": "<string>",
"last_message_preview": "<string>",
"last_message_at": "2023-11-07T05:31:56Z",
"is_read": true,
"is_starred": true,
"reply_count": 123,
"lead_id": "<string>",
"inbox_id": "<string>",
"category": "<string>"
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123,
"has_next": true,
"has_prev": true,
"unread_count": 123,
"starred_count": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API key with format cs_live_xxx
Query Parameters
Filter by campaign ID
Filter by status: unread, read, starred
Search by lead name, email, or subject
Page number
Required range:
x >= 1Items per page
Required range:
1 <= x <= 200Response
Conversations retrieved
Paginated list of conversation threads.
List of conversation threads
Show child attributes
Show child attributes
Total matching threads
Current page
Items per page
Total pages
Whether more pages exist
Whether a previous page exists
Number of unread threads in the current result set
Number of starred threads in the current result set
Was this page helpful?

