curl --request GET \
--url https://be.datagol.ai/conversations/{conversationId}/messages \
--header 'x-auth-token: <api-key>'import requests
url = "https://be.datagol.ai/conversations/{conversationId}/messages"
headers = {"x-auth-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-auth-token': '<api-key>'}};
fetch('https://be.datagol.ai/conversations/{conversationId}/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://be.datagol.ai/conversations/{conversationId}/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 => [
"x-auth-token: <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://be.datagol.ai/conversations/{conversationId}/messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-auth-token", "<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://be.datagol.ai/conversations/{conversationId}/messages")
.header("x-auth-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://be.datagol.ai/conversations/{conversationId}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-auth-token"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 7902,
"conversationId": "c920e1f5-2ac7-4f17-aed7-b260e464c022",
"userId": 206,
"userQuery": "Can you do a RFM analysis on this data?",
"modelResponse": [
{
"code": null,
"data": "Here’s the plan and step-by-step pseudo-code for the RFM analysis, followed by a complete, executable Python script...\n\n```python\nimport pandas as pd\nimport numpy as np...",
"type": "TEXT",
"state": null,
"message": null,
"metadata": null
}
],
"uiMetadata": null,
"messageMetadata": {
"chainId": "1762280699",
"agentType": "NewPythonAgent",
"workbookId": null,
"executionData": [
{
"content": "<table class=\"dataframe dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>user_id</th>\n <th>email</th>\n <th>full_name</th>...",
"response_type": "dataframe"
},
{
"content": {
"agent": "Expert Selector",
"model": "o4-mini"
},
"response_type": "tool_start"
},
{
"content": {
"input": "Reasoning Effort: medium",
"action": "Thinking"
},
"response_type": "tool_call"
},
{
"content": "requires_dataset: true\nexpert: \"Data Analyst\"\nconfidence: 9",
"response_type": "processing"
}
]
},
"isPinned": false,
"timestamp": "2025-11-04T18:24:59.695784Z",
"feedback": null
}
]Get Conversation Messages
Retrieves a chronologically ordered list of user messages, AI responses, and deep system agent routing execution data for a specific conversation thread.
curl --request GET \
--url https://be.datagol.ai/conversations/{conversationId}/messages \
--header 'x-auth-token: <api-key>'import requests
url = "https://be.datagol.ai/conversations/{conversationId}/messages"
headers = {"x-auth-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-auth-token': '<api-key>'}};
fetch('https://be.datagol.ai/conversations/{conversationId}/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://be.datagol.ai/conversations/{conversationId}/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 => [
"x-auth-token: <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://be.datagol.ai/conversations/{conversationId}/messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-auth-token", "<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://be.datagol.ai/conversations/{conversationId}/messages")
.header("x-auth-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://be.datagol.ai/conversations/{conversationId}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-auth-token"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 7902,
"conversationId": "c920e1f5-2ac7-4f17-aed7-b260e464c022",
"userId": 206,
"userQuery": "Can you do a RFM analysis on this data?",
"modelResponse": [
{
"code": null,
"data": "Here’s the plan and step-by-step pseudo-code for the RFM analysis, followed by a complete, executable Python script...\n\n```python\nimport pandas as pd\nimport numpy as np...",
"type": "TEXT",
"state": null,
"message": null,
"metadata": null
}
],
"uiMetadata": null,
"messageMetadata": {
"chainId": "1762280699",
"agentType": "NewPythonAgent",
"workbookId": null,
"executionData": [
{
"content": "<table class=\"dataframe dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>user_id</th>\n <th>email</th>\n <th>full_name</th>...",
"response_type": "dataframe"
},
{
"content": {
"agent": "Expert Selector",
"model": "o4-mini"
},
"response_type": "tool_start"
},
{
"content": {
"input": "Reasoning Effort: medium",
"action": "Thinking"
},
"response_type": "tool_call"
},
{
"content": "requires_dataset: true\nexpert: \"Data Analyst\"\nconfidence: 9",
"response_type": "processing"
}
]
},
"isPinned": false,
"timestamp": "2025-11-04T18:24:59.695784Z",
"feedback": null
}
]Authorizations
For server-to-server or automated access, use a DataGOL Service Account key.
Pass it via the x-auth-token header instead of Authorization:
x-auth-token: <service-account-key>
Path Parameters
The unique UUID identifying the conversation thread.
"6718e680-194b-47fb-b8f6-029b35565b99"
Response
A JSON array containing the message history list along with agent analytics metadata.
Internal unique message identifier.
7902
Back-reference to the parent conversation UUID.
"c920e1f5-2ac7-4f17-aed7-b260e464c022"
The structural ID of the user authoring the text.
206
The exact prompt raw input supplied by the user.
"Can you do some analysis on this data?"
Content block payload parts yielded by the processing model.
Show child attributes
Show child attributes
Client UI specific flags or tracking configurations.
Show child attributes
Show child attributes
Flags whether this thread item was pinned in the interface.
false
Message generation window log timestamp.
"2025-11-04T18:24:59.695784Z"
User satisfaction feedback payload data.