curl --request POST \
--url 'https://api.flashcat.cloud/channel/integration/info?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"integration_id": 10001
}
'import requests
url = "https://api.flashcat.cloud/channel/integration/info?app_key="
payload = { "integration_id": 10001 }
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({integration_id: 10001})
};
fetch('https://api.flashcat.cloud/channel/integration/info?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/integration/info?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([
'integration_id' => 10001
]),
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/integration/info?app_key="
payload := strings.NewReader("{\n \"integration_id\": 10001\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/integration/info?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"integration_id\": 10001\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/channel/integration/info?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 \"integration_id\": 10001\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"integration_id": 10001,
"channel_id": 20001,
"integration_key": "0123456789abcdef0123456789abcdef100",
"exclusive_data_source_id": 0,
"plugin_id": 9,
"plugin_type": "standard.alert",
"plugin_type_name": "Standard alert",
"category": "event.alert",
"name": "Payments alerts",
"description": "Alerts for the payments channel",
"status": "enabled",
"created_at": 1767225600,
"updated_at": 1767225600,
"last_time": 0,
"last_source_time": 0,
"settings": {}
}
}{
"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": "AccessDenied",
"message": "Access Denied."
}
}{
"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."
}
}Get dedicated integration detail
Get one channel-owned integration, including its integration key and masked settings.
curl --request POST \
--url 'https://api.flashcat.cloud/channel/integration/info?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"integration_id": 10001
}
'import requests
url = "https://api.flashcat.cloud/channel/integration/info?app_key="
payload = { "integration_id": 10001 }
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({integration_id: 10001})
};
fetch('https://api.flashcat.cloud/channel/integration/info?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/integration/info?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([
'integration_id' => 10001
]),
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/integration/info?app_key="
payload := strings.NewReader("{\n \"integration_id\": 10001\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/integration/info?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"integration_id\": 10001\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/channel/integration/info?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 \"integration_id\": 10001\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"integration_id": 10001,
"channel_id": 20001,
"integration_key": "0123456789abcdef0123456789abcdef100",
"exclusive_data_source_id": 0,
"plugin_id": 9,
"plugin_type": "standard.alert",
"plugin_type_name": "Standard alert",
"category": "event.alert",
"name": "Payments alerts",
"description": "Alerts for the payments channel",
"status": "enabled",
"created_at": 1767225600,
"updated_at": 1767225600,
"last_time": 0,
"last_source_time": 0,
"settings": {}
}
}{
"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": "AccessDenied",
"message": "Access Denied."
}
}{
"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 Read, Channels Manage, or Integrations Read (on-call) |
Usage
- These APIs manage channel-owned dedicated integrations; use
/integration/*for public integrations. - The App Key’s
api_scopesmust allow the operation; permissions follow the user who owns the key. - Private channels also require the account owner, an Admin, the channel creator, or membership in its owning or managing teams; public channels still require the API permission above.
- The complete
integration_keyis returned; saved secret values insettingsare returned as******. The integration key authenticates alert ingestion and is separate from the management App Key.
Authorizations
APP Key created in the Flashduty console under My → APP Key. Send it as the app_key query parameter or in the Fd-App-Key request header. Its effective access is the intersection of the key's permission scope and the creator's current role permissions. Keep it secret.
Body
Identifies one dedicated integration.
Dedicated integration ID returned by create, list, or info. Public integration IDs are not accepted.
x >= 110001
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?