curl --request POST \
--url 'https://api.flashcat.cloud/monit/rule/update/fields?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
50001,
50002
],
"fields": [
"enabled"
],
"enabled": false
}
'import requests
url = "https://api.flashcat.cloud/monit/rule/update/fields?app_key="
payload = {
"ids": [50001, 50002],
"fields": ["enabled"],
"enabled": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ids: [50001, 50002], fields: ['enabled'], enabled: false})
};
fetch('https://api.flashcat.cloud/monit/rule/update/fields?app_key=', 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.flashcat.cloud/monit/rule/update/fields?app_key=",
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([
'ids' => [
50001,
50002
],
'fields' => [
'enabled'
],
'enabled' => false
]),
CURLOPT_HTTPHEADER => [
"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.flashcat.cloud/monit/rule/update/fields?app_key="
payload := strings.NewReader("{\n \"ids\": [\n 50001,\n 50002\n ],\n \"fields\": [\n \"enabled\"\n ],\n \"enabled\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
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.flashcat.cloud/monit/rule/update/fields?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n 50001,\n 50002\n ],\n \"fields\": [\n \"enabled\"\n ],\n \"enabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/monit/rule/update/fields?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"ids\": [\n 50001,\n 50002\n ],\n \"fields\": [\n \"enabled\"\n ],\n \"enabled\": false\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": [
{
"name": "CPU High",
"message": ""
},
{
"name": "Disk High",
"message": ""
}
]
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Batch update rule fields
Update specific fields across multiple alert rules at once. Only the fields listed in fields are applied.
curl --request POST \
--url 'https://api.flashcat.cloud/monit/rule/update/fields?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
50001,
50002
],
"fields": [
"enabled"
],
"enabled": false
}
'import requests
url = "https://api.flashcat.cloud/monit/rule/update/fields?app_key="
payload = {
"ids": [50001, 50002],
"fields": ["enabled"],
"enabled": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ids: [50001, 50002], fields: ['enabled'], enabled: false})
};
fetch('https://api.flashcat.cloud/monit/rule/update/fields?app_key=', 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.flashcat.cloud/monit/rule/update/fields?app_key=",
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([
'ids' => [
50001,
50002
],
'fields' => [
'enabled'
],
'enabled' => false
]),
CURLOPT_HTTPHEADER => [
"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.flashcat.cloud/monit/rule/update/fields?app_key="
payload := strings.NewReader("{\n \"ids\": [\n 50001,\n 50002\n ],\n \"fields\": [\n \"enabled\"\n ],\n \"enabled\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
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.flashcat.cloud/monit/rule/update/fields?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n 50001,\n 50002\n ],\n \"fields\": [\n \"enabled\"\n ],\n \"enabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/monit/rule/update/fields?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"ids\": [\n 50001,\n 50002\n ],\n \"fields\": [\n \"enabled\"\n ],\n \"enabled\": false\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": [
{
"name": "CPU High",
"message": ""
},
{
"name": "Disk High",
"message": ""
}
]
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Restrictions
| Aspect | Value |
|---|---|
| Rate limits | 1,000 requests/minute; 50 requests/second per account |
| Permissions | Alerting Rules Manage (monit) |
Usage
- Include the field names you want to update in the
fieldsarray, e.g.["enabled", "channel_ids"]. - Only the specified fields are updated; others are left unchanged.
- Every call is recorded in the account audit log. Don’t put secrets in request fields.
Authorizations
App key issued from the Flashduty console under Account → APP Keys. Required on every public API call. Keep it secret — it grants the same access as the owning account.
Body
Rule IDs to update.
Field names to update. Only listed fields are updated, taking new values from the same-named request fields; values for unlisted fields are silently ignored.
labels, ds_type, ds_list, ds_ids, enabled, debug_log_enabled, cron_pattern, timezone, delay_seconds, enabled_times, annotations, description, channel_ids, repeat_interval, repeat_total Custom label key-value pairs; replaces existing labels as a whole. Effective only when fields includes labels.
Show child attributes
Show child attributes
Datasource type identifier. Effective only when fields includes ds_type.
Datasource name match patterns; wildcards supported. Effective only when fields includes ds_list.
Datasource IDs, merged with ds_list to decide which datasources the rule monitors; IDs survive datasource renames. Effective only when fields includes ds_ids.
Whether the rule is enabled. Setting it to false makes the server clean up the rule's active alerts. Effective only when fields includes enabled.
Whether to enable debug logging; the edge emits detailed evaluation logs for troubleshooting. Effective only when fields includes debug_log_enabled.
Schedule expression: a 6-field cron (with seconds) or an @every 30s interval descriptor; CRON_TZ=/TZ= prefixes are not allowed. Effective only when fields includes cron_pattern.
Timezone in which the rule executes. IANA timezone name; defaults to Asia/Shanghai.
Seconds to shift the evaluation query window backward, compensating for data ingestion latency. Effective only when fields includes delay_seconds.
Time windows during which the rule is in effect; element structure see EnabledTime. Effective only when fields includes enabled_times.
Show child attributes
Show child attributes
Annotation key-value pairs delivered with alert events; keys must not start with $ (reserved for query fields). Effective only when fields includes annotations.
Show child attributes
Show child attributes
Rule description (Markdown). Effective only when fields includes description.
IDs of the collaboration spaces alerts are sent to; may be empty. Effective only when fields includes channel_ids.
Interval in seconds between repeated alert notifications. Effective only when fields includes repeat_interval.
Maximum number of repeated notifications. Effective only when fields includes repeat_total.
Partial label update. Effective only when fields includes labels; takes precedence over labels when both are sent.
Show child attributes
Show child attributes
Partial annotation update. Effective only when fields includes annotations; takes precedence over annotations when both are sent.
Show child attributes
Show child attributes
Response
Success
Success response envelope. On every 2xx response, request_id identifies the call (also mirrored in the Flashcat-Request-Id header) and data holds the endpoint-specific payload. Failure responses use a different shape — see ErrorResponse.
Was this page helpful?