AI bots
Disable a connection
Stop every bot using any connection in your company, someone else’s personal one included, from its next call. Its secrets, tools and owner are kept, and it never becomes yours to use or disconnect; the person who connected it still sees it, marked disabled, and can disconnect it. An active or broken connection becomes disabled; a disabled one stays so.
Needs the company_settings.update permission.
POST
/
api
/
company
/
v2026-10
/
bot-connections
/
{id}
/
disable
Disable a connection
curl --request POST \
--url https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable', 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-connections/{id}/disable",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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-connections/{id}/disable"
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"bot_connection": {
"id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a99",
"kind": "mcp_server",
"scope": "personal",
"connector_key": "remote_mcp",
"name": "Helpdesk",
"mcp_host": "mcp.helpdesk.example",
"account_name": null,
"status": "disabled",
"connected_by_admin_id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a2c",
"has_api_key": true,
"auth": "api_key",
"tools_refreshed_at": "2026-10-25T09:00:00.000Z",
"last_used_at": "2026-10-25T10:12:00.000Z",
"created_at": "2026-10-25T09:00:00.000Z",
"connected_by": {
"id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a2c",
"name": "Maya"
},
"can_disconnect": false,
"can_disable": true,
"tools": [
{
"name": "search_tickets",
"description": "Find tickets.",
"effect": "read",
"enabled": true
}
]
},
"status": 200,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-25T09:00:00Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Not authorized."
}{
"error": {
"message": "Connection not found",
"details": {}
},
"status": 404,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-25T09:00:00Z"
}
}Authorizations
The session token of an admin of your company. Company API, partner and droplet installation tokens are refused.
Path Parameters
The connection's id.
Response
The connection, now disabled.
⌘I
Disable a connection
curl --request POST \
--url https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable', 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-connections/{id}/disable",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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-connections/{id}/disable"
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/company/v2026-10/bot-connections/{id}/disable")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"bot_connection": {
"id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a99",
"kind": "mcp_server",
"scope": "personal",
"connector_key": "remote_mcp",
"name": "Helpdesk",
"mcp_host": "mcp.helpdesk.example",
"account_name": null,
"status": "disabled",
"connected_by_admin_id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a2c",
"has_api_key": true,
"auth": "api_key",
"tools_refreshed_at": "2026-10-25T09:00:00.000Z",
"last_used_at": "2026-10-25T10:12:00.000Z",
"created_at": "2026-10-25T09:00:00.000Z",
"connected_by": {
"id": "0190a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a2c",
"name": "Maya"
},
"can_disconnect": false,
"can_disable": true,
"tools": [
{
"name": "search_tickets",
"description": "Find tickets.",
"effect": "read",
"enabled": true
}
]
},
"status": 200,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-25T09:00:00Z"
}
}{
"message": "Invalid credentials."
}{
"message": "Not authorized."
}{
"error": {
"message": "Connection not found",
"details": {}
},
"status": 404,
"meta": {
"request_uuid": "7e2c9b41-3f8a-4d15-b6e0-9a4c21d7f583",
"timestamp": "2026-10-25T09:00:00Z"
}
}