curl --request GET \
--url https://api-dev.narrative.io/agents/conversations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-dev.narrative.io/agents/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-dev.narrative.io/agents/conversations', 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-dev.narrative.io/agents/conversations",
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-dev.narrative.io/agents/conversations"
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-dev.narrative.io/agents/conversations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.narrative.io/agents/conversations")
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{
"current_page": 1,
"total_records": 15000,
"total_pages": 10,
"records": [
{
"id": "bc2505b7-068d-44ed-8055-a6f6ffe54ab1",
"company_id": 1,
"user_id": 407,
"defaults": {
"model": "anthropic.claude-opus-4.6",
"data_plane_id": "f79cbdae-4848-47ca-95e8-69588364d185",
"execution_cluster": "shared",
"compute_pool_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"max_iterations": 8,
"max_tokens": 2048,
"temperature": 0,
"thinking": {
"type": "effort",
"level": "high"
},
"output_format_schema": {
"type": "object",
"additionalProperties": false,
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
}
},
"mcp_servers": [],
"tools": []
},
"version": 4,
"created_at": "2026-05-18T13:21:30.355180Z",
"updated_at": "2026-05-18T13:21:51.983952Z",
"name": "<string>",
"system_prompt": "<string>"
}
],
"prev_page": 1,
"next_page": 42
}{
"error": "Unauthorized",
"error_description": "You are not authorized to use this endpoint."
}List the calling user's agent conversations
Returns a paginated list of conversations created by the bearer-token’s user, newest
first (by created_at).
Scope: per-user, not per-company
Results are filtered by both company_id and user_id from the bearer token —
peers in the same company are not visible. A caller with no conversations gets
records: [] with total_records: 0, not a 404.
Pagination
Uses the standard page / per_page query parameters. Default per_page is 50.
page must be 1 or more and per_page must be a positive integer. A value that isn’t
returns a 404 with an empty body, because the route stops matching.
The response envelope carries prev_page, current_page, next_page,
total_records, total_pages, and the records array — same shape every other
paginated Narrative endpoint uses.
Permission
agent_conversations resource with read verb.
Example
curl "$API/agents/conversations?page=1&per_page=20" \
-H "Authorization: Bearer $TOKEN"
curl --request GET \
--url https://api-dev.narrative.io/agents/conversations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-dev.narrative.io/agents/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-dev.narrative.io/agents/conversations', 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-dev.narrative.io/agents/conversations",
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-dev.narrative.io/agents/conversations"
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-dev.narrative.io/agents/conversations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.narrative.io/agents/conversations")
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{
"current_page": 1,
"total_records": 15000,
"total_pages": 10,
"records": [
{
"id": "bc2505b7-068d-44ed-8055-a6f6ffe54ab1",
"company_id": 1,
"user_id": 407,
"defaults": {
"model": "anthropic.claude-opus-4.6",
"data_plane_id": "f79cbdae-4848-47ca-95e8-69588364d185",
"execution_cluster": "shared",
"compute_pool_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"max_iterations": 8,
"max_tokens": 2048,
"temperature": 0,
"thinking": {
"type": "effort",
"level": "high"
},
"output_format_schema": {
"type": "object",
"additionalProperties": false,
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
}
},
"mcp_servers": [],
"tools": []
},
"version": 4,
"created_at": "2026-05-18T13:21:30.355180Z",
"updated_at": "2026-05-18T13:21:51.983952Z",
"name": "<string>",
"system_prompt": "<string>"
}
],
"prev_page": 1,
"next_page": 42
}{
"error": "Unauthorized",
"error_description": "You are not authorized to use this endpoint."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Number of page. Stars from the first (1) page.
Number of records to return.
Response
Paginated list of the caller's conversations, newest first. Empty records if
the caller has no conversations yet.
Returned by GET /agents/conversations. Page envelope wrapping the caller's
conversations, newest first. Same shape every other paginated Narrative endpoint
uses.
The number of requested page.
1
Total amount of accessible Access Rules
15000
Total amount of pages.
10
Page of conversations, ordered by created_at descending.
Show child attributes
Show child attributes
The number of the previous page, or null on the first page. Can also refer to the latest existing page if a page beyond the last one was requested.
1
The number of the next page, or null on the last page.
42
Was this page helpful?

