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
string
Your customer identifier
array
Default rules from rule packs and scenarios
Show default rule properties
Show default rule properties
string
Rule identifier (e.g.,
signal_mnpi_leak)string
AI_SIGNAL or REGEXstring
Always
default for built-in rulesboolean
Whether this rule is currently active for your account
string
Rule pack this rule belongs to (e.g.,
sec_finra_comms_v2)array
Scenarios this rule appears in
number
Confidence threshold for AI signals
string
Threshold comparison operator (e.g.,
>=)array
Custom rules from policy imports
Show custom rule properties
Show custom rule properties
string
Rule identifier (prefixed with
cust_)string
AI_SIGNAL, REGEX, or REQUIRE_NEARstring
Human-readable rule name
string
Always
custom for imported rulesboolean
Whether this rule is currently active
string
Import ID this rule was extracted from
string
Rule severity level
string
Rule action type
string
Text window for evaluation
string
ISO 8601 creation timestamp
integer
Total number of default rules (active + deactivated)
integer
Number of active default rules
integer
Total number of custom rules (active + deactivated)
integer
Number of active custom rules
integer
Total rules across default + custom
integer
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

