curl --request GET \
--url https://api.yo-lead.com/v1/tickets/{ticketId}/history \
--header 'X-YoLead-Key: <api-key>' \
--header 'X-YoLead-Signature: <api-key>' \
--header 'X-YoLead-Timestamp: <api-key>'import requests
url = "https://api.yo-lead.com/v1/tickets/{ticketId}/history"
headers = {
"X-YoLead-Key": "<api-key>",
"X-YoLead-Timestamp": "<api-key>",
"X-YoLead-Signature": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-YoLead-Key': '<api-key>',
'X-YoLead-Timestamp': '<api-key>',
'X-YoLead-Signature': '<api-key>'
}
};
fetch('https://api.yo-lead.com/v1/tickets/{ticketId}/history', 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.yo-lead.com/v1/tickets/{ticketId}/history",
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-YoLead-Key: <api-key>",
"X-YoLead-Signature: <api-key>",
"X-YoLead-Timestamp: <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.yo-lead.com/v1/tickets/{ticketId}/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-YoLead-Key", "<api-key>")
req.Header.Add("X-YoLead-Timestamp", "<api-key>")
req.Header.Add("X-YoLead-Signature", "<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.yo-lead.com/v1/tickets/{ticketId}/history")
.header("X-YoLead-Key", "<api-key>")
.header("X-YoLead-Timestamp", "<api-key>")
.header("X-YoLead-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yo-lead.com/v1/tickets/{ticketId}/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-YoLead-Key"] = '<api-key>'
request["X-YoLead-Timestamp"] = '<api-key>'
request["X-YoLead-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_bodyGet ticket history
Returns ticket metadata and up to 20 messages for the API key company, ordered from newest to oldest. Email messages can include an optional subject. New Telegram, email, Facebook, and Instagram messages can include attachment descriptors; Telegram album messages can also include mediaGroupId. Existing messages and provider-imported history are not backfilled. The ticket can include acquisition attribution; Instagram Ads referrals currently provide attribution.ad_id.
This endpoint can read non-current tickets, but history is unavailable while a ticket has status new. On plans with limited chat history, tickets older than 30 days return 403. If the response contains nextChunkStartMessageId, pass it as chunkLastMessageId to load the next chunk.
Required API key scope: read.
curl --request GET \
--url https://api.yo-lead.com/v1/tickets/{ticketId}/history \
--header 'X-YoLead-Key: <api-key>' \
--header 'X-YoLead-Signature: <api-key>' \
--header 'X-YoLead-Timestamp: <api-key>'import requests
url = "https://api.yo-lead.com/v1/tickets/{ticketId}/history"
headers = {
"X-YoLead-Key": "<api-key>",
"X-YoLead-Timestamp": "<api-key>",
"X-YoLead-Signature": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-YoLead-Key': '<api-key>',
'X-YoLead-Timestamp': '<api-key>',
'X-YoLead-Signature': '<api-key>'
}
};
fetch('https://api.yo-lead.com/v1/tickets/{ticketId}/history', 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.yo-lead.com/v1/tickets/{ticketId}/history",
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-YoLead-Key: <api-key>",
"X-YoLead-Signature: <api-key>",
"X-YoLead-Timestamp: <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.yo-lead.com/v1/tickets/{ticketId}/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-YoLead-Key", "<api-key>")
req.Header.Add("X-YoLead-Timestamp", "<api-key>")
req.Header.Add("X-YoLead-Signature", "<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.yo-lead.com/v1/tickets/{ticketId}/history")
.header("X-YoLead-Key", "<api-key>")
.header("X-YoLead-Timestamp", "<api-key>")
.header("X-YoLead-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yo-lead.com/v1/tickets/{ticketId}/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-YoLead-Key"] = '<api-key>'
request["X-YoLead-Timestamp"] = '<api-key>'
request["X-YoLead-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_bodyAuthorizations
Public API key generated in the YoLead UI.
Unix timestamp in milliseconds. Requests must be signed within a 5-minute window.
Hex HMAC-SHA256 signature over <timestamp>.<raw_body> using the API secret.
Path Parameters
Ticket id. MongoDB ObjectId represented as a 24-character hexadecimal string.
^[0-9a-fA-F]{24}$"64f000000000000000000001"
Query Parameters
Cursor returned as nextChunkStartMessageId by the previous history response.
1Response
Ticket history.
Show child attributes
Show child attributes