Get thread public messages
curl --request GET \
--url https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages \
--header 'authorization: <authorization>'import requests
url = "https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages', 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.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages",
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: <authorization>"
],
]);
$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.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
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.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"messages": [
{
"id": "<string>",
"thread_id": "<string>",
"role": "<string>",
"parts": "<string>",
"metadata": "<string>",
"created_at": "<string>"
}
],
"total": 123,
"feedbacks": {},
"thread_feedback": {
"sentiment": 123,
"comment": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}resources
Get thread public messages
Get all messages for a thread with filtered parts. Removes reasoning and internal tool parts for safe display to end users.
GET
/
v1
/
resources
/
{resourceId}
/
threads
/
{threadId}
/
public-messages
Get thread public messages
curl --request GET \
--url https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages \
--header 'authorization: <authorization>'import requests
url = "https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages', 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.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages",
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: <authorization>"
],
]);
$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.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
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.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.illuminalab.com/v1/resources/{resourceId}/threads/{threadId}/public-messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"messages": [
{
"id": "<string>",
"thread_id": "<string>",
"role": "<string>",
"parts": "<string>",
"metadata": "<string>",
"created_at": "<string>"
}
],
"total": 123,
"feedbacks": {},
"thread_feedback": {
"sentiment": 123,
"comment": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Headers
Pattern:
^Bearer [\s\S]{0,}$Path Parameters
Unique resource identifier
Minimum string length:
10UUID of the thread
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
Response for status 200
Array of messages with filtered parts (no reasoning or internal tools)
Show child attributes
Show child attributes
Total count of messages
Map of message IDs to feedback data (sentiment and optional comment)
Show child attributes
Show child attributes
Thread-level feedback (score 0-5 with optional comment), null if none exists
Show child attributes
Show child attributes