Get complete chat history (chat + messages) via API key
curl --request GET \
--url https://api.leanmcp.com/api/chats/id/{id}/history/full \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.leanmcp.com/api/chats/id/{id}/history/full"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.leanmcp.com/api/chats/id/{id}/history/full', 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.leanmcp.com/api/chats/id/{id}/history/full",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.leanmcp.com/api/chats/id/{id}/history/full"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.leanmcp.com/api/chats/id/{id}/history/full")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.leanmcp.com/api/chats/id/{id}/history/full")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"chat": {
"id": "<string>",
"userId": "<string>",
"title": "<string>",
"isPublic": false,
"status": "active",
"createdAt": "<string>",
"updatedAt": "<string>",
"messageCount": 1,
"showcased": false,
"summary": "<string>",
"modelUsed": "<string>",
"systemMessageId": "<string>",
"metadata": {}
},
"messages": [
{
"id": "<string>",
"chatId": "c1a83d84-7154-464c-bd19-a9f10e0a067f",
"userId": "<string>",
"content": "<string>",
"messageIndex": 1,
"createdAt": "<string>",
"updatedAt": "<string>",
"fileStates": [
{
"fileStateId": "<string>",
"filePath": "<string>"
}
],
"metadata": {}
}
],
"totalMessages": 123,
"retrievedAt": "<string>"
}Get complete chat history (chat + messages) via API key
Returns chat metadata along with all messages in the conversation using API key authentication. Requires CHAT scope.
GET
/
api
/
chats
/
id
/
{id}
/
history
/
full
Get complete chat history (chat + messages) via API key
curl --request GET \
--url https://api.leanmcp.com/api/chats/id/{id}/history/full \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.leanmcp.com/api/chats/id/{id}/history/full"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.leanmcp.com/api/chats/id/{id}/history/full', 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.leanmcp.com/api/chats/id/{id}/history/full",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.leanmcp.com/api/chats/id/{id}/history/full"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.leanmcp.com/api/chats/id/{id}/history/full")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.leanmcp.com/api/chats/id/{id}/history/full")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"chat": {
"id": "<string>",
"userId": "<string>",
"title": "<string>",
"isPublic": false,
"status": "active",
"createdAt": "<string>",
"updatedAt": "<string>",
"messageCount": 1,
"showcased": false,
"summary": "<string>",
"modelUsed": "<string>",
"systemMessageId": "<string>",
"metadata": {}
},
"messages": [
{
"id": "<string>",
"chatId": "c1a83d84-7154-464c-bd19-a9f10e0a067f",
"userId": "<string>",
"content": "<string>",
"messageIndex": 1,
"createdAt": "<string>",
"updatedAt": "<string>",
"fileStates": [
{
"fileStateId": "<string>",
"filePath": "<string>"
}
],
"metadata": {}
}
],
"totalMessages": 123,
"retrievedAt": "<string>"
}Authorizations
Enter your LeanMCP API key
Path Parameters
Chat ID
Example:
"c1a83d84-7154-464c-bd19-a9f10e0a067f"
Response
Full chat history retrieved successfully
Chat metadata
Show child attributes
Show child attributes
Array of complete message objects with associated file states in chronological order
Show child attributes
Show child attributes
Total number of messages in chat
Timestamp when history was retrieved
⌘I

