curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}', 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://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}",
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://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}"
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://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}")
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{
"id": "68a1d2c3e4f5061728394a5b",
"app_id": "6820f3a4e7b91d003c45a1f2",
"agent_name": "support_agent",
"created_by_id": "68a1d2c3e4f5061728394a6c",
"created_by_email": "jane@acme.com",
"metadata": {
"name": "Order #1042 delivery date"
},
"messages": [
{
"content": "When will order #1042 arrive?",
"hidden": false,
"id": "4f1c2a9e-7b3d-4e8a-9c21-5d6f7a8b9c0d",
"role": "user"
},
{
"content": "Your order ships tomorrow and should arrive by Friday.",
"hidden": false,
"id": "8a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"role": "assistant"
}
],
"message_count": 6,
"credit_count": 1.5,
"answering": "ai",
"answering_version": 1,
"human_until": "2023-11-07T05:31:56Z",
"escalation_summary": "<string>",
"created_date": "2026-01-15T09:23:41",
"updated_date": "2026-01-15T09:31:07"
}{
"error": {
"code": "database_unavailable",
"message": "Database temporarily unavailable, please retry",
"details": {}
}
}Get agent conversation
Returns one conversation with one of the app’s agents, with its most recent messages.
The messages are what the app’s user and the agent wrote, so they can hold personal data. They also include what the agent’s tools returned.
This is limited to 120 requests a minute per app for each workspace’s personal API keys, so every personal API key in a workspace shares one allowance, and each workspace API key has its own. Some workspaces have a different limit.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}', 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://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}",
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://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}"
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://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/agent-configs/conversations/{conversation_id}")
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{
"id": "68a1d2c3e4f5061728394a5b",
"app_id": "6820f3a4e7b91d003c45a1f2",
"agent_name": "support_agent",
"created_by_id": "68a1d2c3e4f5061728394a6c",
"created_by_email": "jane@acme.com",
"metadata": {
"name": "Order #1042 delivery date"
},
"messages": [
{
"content": "When will order #1042 arrive?",
"hidden": false,
"id": "4f1c2a9e-7b3d-4e8a-9c21-5d6f7a8b9c0d",
"role": "user"
},
{
"content": "Your order ships tomorrow and should arrive by Friday.",
"hidden": false,
"id": "8a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"role": "assistant"
}
],
"message_count": 6,
"credit_count": 1.5,
"answering": "ai",
"answering_version": 1,
"human_until": "2023-11-07T05:31:56Z",
"escalation_summary": "<string>",
"created_date": "2026-01-15T09:23:41",
"updated_date": "2026-01-15T09:31:07"
}{
"error": {
"code": "database_unavailable",
"message": "Database temporarily unavailable, please retry",
"details": {}
}
}Authorizations
Personal access token, sent as Authorization: Bearer <token>. Each operation lists the permission it needs: read_only or full_access. A full-access token can call every operation. A read-only token can call only the operations that list read_only; anything else returns 403 read_only_credential_route_not_allowed.
Scopes
Path Parameters
ID of the conversation. Get this from List agent conversation users.
Response
The conversation and its most recent messages.
One conversation with one of the app's agents, with its messages.
Up to the 200 most recent messages, oldest first. Each message has a role of user or assistant and its content. An assistant message also lists the tool_calls the agent made and what each one returned, which can include records from the app's data.
[
{
"content": "When will order #1042 arrive?",
"hidden": false,
"id": "4f1c2a9e-7b3d-4e8a-9c21-5d6f7a8b9c0d",
"role": "user"
},
{
"content": "Your order ships tomorrow and should arrive by Friday.",
"hidden": false,
"id": "8a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"role": "assistant"
}
]
Was this page helpful?