curl --request POST \
--url http://localhost:8080/api/bots/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"name": "Updated Bot Name",
"proxy_enabled": true,
"backend_url": "https://my-backend.example.com/webhook",
"long_poll_enabled": false
}
'import requests
url = "http://localhost:8080/api/bots/update"
payload = {
"id": 1,
"name": "Updated Bot Name",
"proxy_enabled": True,
"backend_url": "https://my-backend.example.com/webhook",
"long_poll_enabled": False
}
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({
id: 1,
name: 'Updated Bot Name',
proxy_enabled: true,
backend_url: 'https://my-backend.example.com/webhook',
long_poll_enabled: false
})
};
fetch('http://localhost:8080/api/bots/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/bots/update",
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([
'id' => 1,
'name' => 'Updated Bot Name',
'proxy_enabled' => true,
'backend_url' => 'https://my-backend.example.com/webhook',
'long_poll_enabled' => false
]),
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 := "http://localhost:8080/api/bots/update"
payload := strings.NewReader("{\n \"id\": 1,\n \"name\": \"Updated Bot Name\",\n \"proxy_enabled\": true,\n \"backend_url\": \"https://my-backend.example.com/webhook\",\n \"long_poll_enabled\": false\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("http://localhost:8080/api/bots/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"name\": \"Updated Bot Name\",\n \"proxy_enabled\": true,\n \"backend_url\": \"https://my-backend.example.com/webhook\",\n \"long_poll_enabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/bots/update")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"name\": \"Updated Bot Name\",\n \"proxy_enabled\": true,\n \"backend_url\": \"https://my-backend.example.com/webhook\",\n \"long_poll_enabled\": false\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"token": "<string>",
"name": "<string>",
"source": "cli",
"manage_enabled": true,
"proxy_enabled": true,
"backend_url": "<string>",
"secret_token": "<string>",
"long_poll_enabled": true,
"description": "<string>",
"running": true,
"webhook_mode": true,
"disabled": true
}{
"error": "bot not found"
}{
"error": "bot not found"
}{
"error": "bot not found"
}Обновить бота
Updates settings for an existing bot. Admin only.
curl --request POST \
--url http://localhost:8080/api/bots/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"name": "Updated Bot Name",
"proxy_enabled": true,
"backend_url": "https://my-backend.example.com/webhook",
"long_poll_enabled": false
}
'import requests
url = "http://localhost:8080/api/bots/update"
payload = {
"id": 1,
"name": "Updated Bot Name",
"proxy_enabled": True,
"backend_url": "https://my-backend.example.com/webhook",
"long_poll_enabled": False
}
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({
id: 1,
name: 'Updated Bot Name',
proxy_enabled: true,
backend_url: 'https://my-backend.example.com/webhook',
long_poll_enabled: false
})
};
fetch('http://localhost:8080/api/bots/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/bots/update",
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([
'id' => 1,
'name' => 'Updated Bot Name',
'proxy_enabled' => true,
'backend_url' => 'https://my-backend.example.com/webhook',
'long_poll_enabled' => false
]),
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 := "http://localhost:8080/api/bots/update"
payload := strings.NewReader("{\n \"id\": 1,\n \"name\": \"Updated Bot Name\",\n \"proxy_enabled\": true,\n \"backend_url\": \"https://my-backend.example.com/webhook\",\n \"long_poll_enabled\": false\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("http://localhost:8080/api/bots/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"name\": \"Updated Bot Name\",\n \"proxy_enabled\": true,\n \"backend_url\": \"https://my-backend.example.com/webhook\",\n \"long_poll_enabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/bots/update")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"name\": \"Updated Bot Name\",\n \"proxy_enabled\": true,\n \"backend_url\": \"https://my-backend.example.com/webhook\",\n \"long_poll_enabled\": false\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"token": "<string>",
"name": "<string>",
"source": "cli",
"manage_enabled": true,
"proxy_enabled": true,
"backend_url": "<string>",
"secret_token": "<string>",
"long_poll_enabled": true,
"description": "<string>",
"running": true,
"webhook_mode": true,
"disabled": true
}{
"error": "bot not found"
}{
"error": "bot not found"
}{
"error": "bot not found"
}Авторизации
API key with bmx_ prefix. Obtain via /api/auth/api-keys.
Тело
Ответ
Bot updated successfully
Unique bot ID
Telegram bot token
Display name
Registration source (informational only — both types are functionally identical)
cli, web Whether chat management features are active for this bot
Whether this bot forwards updates to a backend URL
Backend URL to forward updates to (when proxy_enabled)
Secret token for validating backend webhook requests
Whether the long-poll endpoint buffers updates for this bot
Natural-language description used by the LLM router
Whether the bot is currently active (polling or webhook-registered)
Whether the bot is in webhook mode (not polled by BotMux)
Whether the bot is disabled. Disabled bots are stopped and do not poll or receive webhook updates.
Была ли эта страница полезной?