AI bots
Read a running bot's own persona or memory
The current version of the persona or memory of the bot whose run login signs the request, or its default as version 0. Only a run login reaches this endpoint.
GET
/
api
/
company
/
v2026-10
/
bot-runs
/
current
/
documents
/
{kind}
Read a running bot's own persona or memory
curl --request GET \
--url https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}', 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.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}",
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.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}"
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.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}")
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{
"document": {
"kind": "persona",
"version": 2,
"body": "# Persona\n\nI help Primex follow up on unpaid orders. Keep replies short.\n",
"author_run_id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a80",
"author_admin_id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a2c",
"source_message_id": 48213,
"reverted_from_version": null,
"created_at": "2026-10-22T15:45:00.000Z"
},
"status": 200,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-22T15:45:00Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Only a running bot can call this"
}Authorizations
A bot's run login, minted for one run when it starts. Admin sessions and every other token are refused.
Path Parameters
Which document, persona (who the bot is, its tone, preferences and how it works) or memory (its notes, what it did and what it learned).
Available options:
persona, memory ⌘I
Read a running bot's own persona or memory
curl --request GET \
--url https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}', 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.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}",
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.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}"
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.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/bot-runs/current/documents/{kind}")
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{
"document": {
"kind": "persona",
"version": 2,
"body": "# Persona\n\nI help Primex follow up on unpaid orders. Keep replies short.\n",
"author_run_id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a80",
"author_admin_id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a2c",
"source_message_id": 48213,
"reverted_from_version": null,
"created_at": "2026-10-22T15:45:00.000Z"
},
"status": 200,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-22T15:45:00Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Only a running bot can call this"
}