AI bots
Rename the bot
The bot takes the name its owner or a steward gave it in the chat (rename_self, D-423). The name changes on the bot and its messaging recipient, and the run’s conversation gets a “Renamed to” notice. Only a run asked by the bot’s owner or a steward may rename it.
POST
/
api
/
company
/
v2026-10
/
bots
/
{bot_id}
/
runs
/
{run_id}
/
rename
Rename the bot
curl --request POST \
--url https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Order helper"
}
'import requests
url = "https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename"
payload = { "name": "Order helper" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Order helper'})
};
fetch('https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename', 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/bots/{bot_id}/runs/{run_id}/rename",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Order helper'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename"
payload := strings.NewReader("{\n \"name\": \"Order helper\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Order helper\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Order helper\"\n}"
response = http.request(request)
puts response.read_body{
"bot": {
"id": "0192f3c4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
"name": "Order helper"
},
"status": 200,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-21T16:10:00Z"
}
}{
"message": "Invalid credentials."
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 25,
"prev_cursor": "<string>",
"next_cursor": "<string>"
}
}
}{
"error": {
"message": "Run not found",
"details": {}
},
"status": 404,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-26T15:32:08Z"
}
}{
"error": {
"message": "The run is not open",
"details": {
"type": "run_closed"
}
},
"status": 409,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-26T15:32:08Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 25,
"prev_cursor": "<string>",
"next_cursor": "<string>"
}
}
}Authorizations
The session token of an admin of your company. Company API, partner and droplet installation tokens are refused.
Path Parameters
The bot's id.
The id of one of the bot's runs.
Body
application/json
Required string length:
1 - 40⌘I
Rename the bot
curl --request POST \
--url https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Order helper"
}
'import requests
url = "https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename"
payload = { "name": "Order helper" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Order helper'})
};
fetch('https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename', 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/bots/{bot_id}/runs/{run_id}/rename",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Order helper'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename"
payload := strings.NewReader("{\n \"name\": \"Order helper\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Order helper\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/bots/{bot_id}/runs/{run_id}/rename")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Order helper\"\n}"
response = http.request(request)
puts response.read_body{
"bot": {
"id": "0192f3c4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
"name": "Order helper"
},
"status": 200,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-21T16:10:00Z"
}
}{
"message": "Invalid credentials."
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 25,
"prev_cursor": "<string>",
"next_cursor": "<string>"
}
}
}{
"error": {
"message": "Run not found",
"details": {}
},
"status": 404,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-26T15:32:08Z"
}
}{
"error": {
"message": "The run is not open",
"details": {
"type": "run_closed"
}
},
"status": 409,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-26T15:32:08Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 25,
"prev_cursor": "<string>",
"next_cursor": "<string>"
}
}
}