curl --request POST \
--url 'https://api.flashcat.cloud/channel/update?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"channel_id": 1001,
"channel_name": "Production Alerts (v2)",
"description": "Updated description"
}
'import requests
url = "https://api.flashcat.cloud/channel/update?app_key="
payload = {
"channel_id": 1001,
"channel_name": "Production Alerts (v2)",
"description": "Updated description"
}
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({
channel_id: 1001,
channel_name: 'Production Alerts (v2)',
description: 'Updated description'
})
};
fetch('https://api.flashcat.cloud/channel/update?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/channel/update?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([
'channel_id' => 1001,
'channel_name' => 'Production Alerts (v2)',
'description' => 'Updated description'
]),
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/channel/update?app_key="
payload := strings.NewReader("{\n \"channel_id\": 1001,\n \"channel_name\": \"Production Alerts (v2)\",\n \"description\": \"Updated description\"\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/channel/update?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"channel_id\": 1001,\n \"channel_name\": \"Production Alerts (v2)\",\n \"description\": \"Updated description\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/channel/update?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 \"channel_id\": 1001,\n \"channel_name\": \"Production Alerts (v2)\",\n \"description\": \"Updated description\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"external_report_token": ""
}
}{
"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."
}
}Update channel
Update an existing channel’s configuration and settings.
curl --request POST \
--url 'https://api.flashcat.cloud/channel/update?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"channel_id": 1001,
"channel_name": "Production Alerts (v2)",
"description": "Updated description"
}
'import requests
url = "https://api.flashcat.cloud/channel/update?app_key="
payload = {
"channel_id": 1001,
"channel_name": "Production Alerts (v2)",
"description": "Updated description"
}
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({
channel_id: 1001,
channel_name: 'Production Alerts (v2)',
description: 'Updated description'
})
};
fetch('https://api.flashcat.cloud/channel/update?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/channel/update?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([
'channel_id' => 1001,
'channel_name' => 'Production Alerts (v2)',
'description' => 'Updated description'
]),
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/channel/update?app_key="
payload := strings.NewReader("{\n \"channel_id\": 1001,\n \"channel_name\": \"Production Alerts (v2)\",\n \"description\": \"Updated description\"\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/channel/update?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"channel_id\": 1001,\n \"channel_name\": \"Production Alerts (v2)\",\n \"description\": \"Updated description\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/channel/update?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 \"channel_id\": 1001,\n \"channel_name\": \"Production Alerts (v2)\",\n \"description\": \"Updated description\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"external_report_token": ""
}
}{
"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 | Channels Manage (on-call) |
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
Parameters for updating a channel. Only the fields you pass are updated.
ID of the channel to update; obtain it from POST /channel/list.
New owning team ID; obtain it from POST /team/list.
Additional teams that can manage the channel. Up to 3 entries.
3New channel name. 1 to 59 characters.
1 - 59New description. Up to 500 characters.
500Auto-resolve timeout in seconds. 0 disables auto-resolve. Max 30 days.
0 <= x <= 2592000Auto-resolve timing mode: trigger starts the timer when the incident triggers, update restarts it on every alert update. Applied only when auto_resolve_timeout is also present in the request.
trigger, update When true, the channel is visible only to its managing teams.
Alert grouping configuration.
Show child attributes
Show child attributes
Flapping detection configuration.
Show child attributes
Show child attributes
Disable outlier incident detection.
Disable automatic incident closing.
Allow external reporters to file incidents into this channel.
Alert event merge configuration. Updated only when present.
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.
Unique ID for this request. Mirrored in the Flashcat-Request-Id response header. Include it when reporting issues.
"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
Response from updating a channel. Only populated when is_external_report_enabled is set to true; otherwise all fields are empty.
Show child attributes
Show child attributes
Was this page helpful?