cURL
curl -X GET "https://app.cotool.ai/api/agents/:agentId/run-async/:runId/messages" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"import requests
url = "https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages"
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))
}{
"totalCount": 123,
"messages": [
{
"type": "user",
"text": "<string>",
"timestamp": "<string>"
}
]
}{
"error": "<string>",
"issues": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>",
"missingPerms": [
"<string>"
]
}{
"error": "<string>"
}Agents
List agent run messages
Page through an agent run’s conversation, oldest first: messages to the agent, its replies, and its tool calls with their output. Works at any run status. A message keeps its offset as the run grows; the latest page starts at totalCount - limit.
GET
/
api
/
agents
/
{agentId}
/
run-async
/
{runId}
/
messages
cURL
curl -X GET "https://app.cotool.ai/api/agents/:agentId/run-async/:runId/messages" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"import requests
url = "https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.cotool.ai/api/agents/{agentId}/run-async/{runId}/messages"
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))
}{
"totalCount": 123,
"messages": [
{
"type": "user",
"text": "<string>",
"timestamp": "<string>"
}
]
}{
"error": "<string>",
"issues": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>",
"missingPerms": [
"<string>"
]
}{
"error": "<string>"
}Authorizations
API Key authentication for programmatic access. Include your API key in the Authorization header as: Bearer your_api_key_here
Path Parameters
Unique identifier of the agent
Unique identifier of the asynchronous run to check status for
Query Parameters
Messages to skip, counting from the oldest (default 0)
Required range:
x >= 0Most messages to return (default 20)
Required range:
1 <= x <= 100Was this page helpful?
⌘I