List Rules
curl --request GET \
--url https://api.example.com/api/policies/rulesimport requests
url = "https://api.example.com/api/policies/rules"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/policies/rules', 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.example.com/api/policies/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/policies/rules"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/policies/rules")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/policies/rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"customer_id": "abc-123",
"default_rules": [
{
"rule_id": "signal_mnpi_leak",
"type": "AI_SIGNAL",
"source": "default",
"active": true,
"rule_pack_id": "sec_finra_comms_v2",
"rule_pack_scenario_ids": ["scenario_email_general", "scenario_all_general"],
"threshold": 0.60,
"operator": ">="
}
],
"custom_rules": [
{
"rule_id": "cust_abc123_require_risk_disclosure",
"type": "AI_SIGNAL",
"name": "Risk Disclosure Required",
"severity": "high",
"source": "custom",
"active": true,
"import_id": "550e8400-e29b-41d4-a716-446655440000"
}
],
"default_rules_count": 119,
"default_rules_active_count": 115,
"custom_rules_count": 5,
"custom_rules_active_count": 5,
"total_rules_count": 124,
"total_active_count": 120
}
Custom Policies
List Rules
List all default and custom rules with their active/deactivated status
GET
/
api
/
policies
/
rules
List Rules
curl --request GET \
--url https://api.example.com/api/policies/rulesimport requests
url = "https://api.example.com/api/policies/rules"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/policies/rules', 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.example.com/api/policies/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/policies/rules"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/policies/rules")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/policies/rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"customer_id": "abc-123",
"default_rules": [
{
"rule_id": "signal_mnpi_leak",
"type": "AI_SIGNAL",
"source": "default",
"active": true,
"rule_pack_id": "sec_finra_comms_v2",
"rule_pack_scenario_ids": ["scenario_email_general", "scenario_all_general"],
"threshold": 0.60,
"operator": ">="
}
],
"custom_rules": [
{
"rule_id": "cust_abc123_require_risk_disclosure",
"type": "AI_SIGNAL",
"name": "Risk Disclosure Required",
"severity": "high",
"source": "custom",
"active": true,
"import_id": "550e8400-e29b-41d4-a716-446655440000"
}
],
"default_rules_count": 119,
"default_rules_active_count": 115,
"custom_rules_count": 5,
"custom_rules_active_count": 5,
"total_rules_count": 124,
"total_active_count": 120
}
Retrieve all rules for your account, including default rules (from rule packs and scenarios) and custom rules (from policy imports). Each rule includes an
active field indicating whether it will run during validation.
Response
Your customer identifier
Default rules from rule packs and scenarios
Show default rule properties
Show default rule properties
Rule identifier (e.g.,
signal_mnpi_leak)AI_SIGNAL or REGEXAlways
default for built-in rulesWhether this rule is currently active for your account
Rule pack this rule belongs to (e.g.,
sec_finra_comms_v2)Scenarios this rule appears in
Confidence threshold for AI signals
Threshold comparison operator (e.g.,
>=)Custom rules from policy imports
Show custom rule properties
Show custom rule properties
Rule identifier (prefixed with
cust_)AI_SIGNAL, REGEX, or REQUIRE_NEARHuman-readable rule name
Always
custom for imported rulesWhether this rule is currently active
Import ID this rule was extracted from
Rule severity level
Rule action type
Text window for evaluation
ISO 8601 creation timestamp
Total number of default rules (active + deactivated)
Number of active default rules
Total number of custom rules (active + deactivated)
Number of active custom rules
Total rules across default + custom
Total active rules across default + custom
{
"customer_id": "abc-123",
"default_rules": [
{
"rule_id": "signal_mnpi_leak",
"type": "AI_SIGNAL",
"source": "default",
"active": true,
"rule_pack_id": "sec_finra_comms_v2",
"rule_pack_scenario_ids": ["scenario_email_general", "scenario_all_general"],
"threshold": 0.60,
"operator": ">="
}
],
"custom_rules": [
{
"rule_id": "cust_abc123_require_risk_disclosure",
"type": "AI_SIGNAL",
"name": "Risk Disclosure Required",
"severity": "high",
"source": "custom",
"active": true,
"import_id": "550e8400-e29b-41d4-a716-446655440000"
}
],
"default_rules_count": 119,
"default_rules_active_count": 115,
"custom_rules_count": 5,
"custom_rules_active_count": 5,
"total_rules_count": 124,
"total_active_count": 120
}
Example
curl -X GET "https://{api-url}/api/policies/rules" \
-H "x-api-key: YOUR_API_KEY"
import requests
response = requests.get(
"https://{api-url}/api/policies/rules",
headers={"x-api-key": "YOUR_API_KEY"}
)
data = response.json()
print(f"Active: {data['total_active_count']} / {data['total_rules_count']} rules")
for rule in data["default_rules"]:
if not rule["active"]:
print(f" Deactivated: {rule['rule_id']}")
⌘I

