curl --request POST \
--url https://api.devhelm.io/api/v1/notification-policies/{id}/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"severity": "<string>",
"monitorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"regions": [
"<string>"
],
"eventType": "<string>",
"monitorType": "<string>",
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"componentName": "<string>",
"resourceGroupIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.devhelm.io/api/v1/notification-policies/{id}/test"
payload = {
"severity": "<string>",
"monitorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"regions": ["<string>"],
"eventType": "<string>",
"monitorType": "<string>",
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"componentName": "<string>",
"resourceGroupIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
severity: '<string>',
monitorId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
regions: ['<string>'],
eventType: '<string>',
monitorType: '<string>',
serviceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
componentName: '<string>',
resourceGroupIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.devhelm.io/api/v1/notification-policies/{id}/test', 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.devhelm.io/api/v1/notification-policies/{id}/test",
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([
'severity' => '<string>',
'monitorId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'regions' => [
'<string>'
],
'eventType' => '<string>',
'monitorType' => '<string>',
'serviceId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'componentName' => '<string>',
'resourceGroupIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.devhelm.io/api/v1/notification-policies/{id}/test"
payload := strings.NewReader("{\n \"severity\": \"<string>\",\n \"monitorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"regions\": [\n \"<string>\"\n ],\n \"eventType\": \"<string>\",\n \"monitorType\": \"<string>\",\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"componentName\": \"<string>\",\n \"resourceGroupIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.devhelm.io/api/v1/notification-policies/{id}/test")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"severity\": \"<string>\",\n \"monitorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"regions\": [\n \"<string>\"\n ],\n \"eventType\": \"<string>\",\n \"monitorType\": \"<string>\",\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"componentName\": \"<string>\",\n \"resourceGroupIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devhelm.io/api/v1/notification-policies/{id}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"severity\": \"<string>\",\n \"monitorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"regions\": [\n \"<string>\"\n ],\n \"eventType\": \"<string>\",\n \"monitorType\": \"<string>\",\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"componentName\": \"<string>\",\n \"resourceGroupIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"matched": true,
"matchedRules": [
"<string>"
],
"unmatchedRules": [
"<string>"
]
}
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}Dry-run: evaluate a policy's match rules against a supplied incident context
curl --request POST \
--url https://api.devhelm.io/api/v1/notification-policies/{id}/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"severity": "<string>",
"monitorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"regions": [
"<string>"
],
"eventType": "<string>",
"monitorType": "<string>",
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"componentName": "<string>",
"resourceGroupIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.devhelm.io/api/v1/notification-policies/{id}/test"
payload = {
"severity": "<string>",
"monitorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"regions": ["<string>"],
"eventType": "<string>",
"monitorType": "<string>",
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"componentName": "<string>",
"resourceGroupIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
severity: '<string>',
monitorId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
regions: ['<string>'],
eventType: '<string>',
monitorType: '<string>',
serviceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
componentName: '<string>',
resourceGroupIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.devhelm.io/api/v1/notification-policies/{id}/test', 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.devhelm.io/api/v1/notification-policies/{id}/test",
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([
'severity' => '<string>',
'monitorId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'regions' => [
'<string>'
],
'eventType' => '<string>',
'monitorType' => '<string>',
'serviceId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'componentName' => '<string>',
'resourceGroupIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.devhelm.io/api/v1/notification-policies/{id}/test"
payload := strings.NewReader("{\n \"severity\": \"<string>\",\n \"monitorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"regions\": [\n \"<string>\"\n ],\n \"eventType\": \"<string>\",\n \"monitorType\": \"<string>\",\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"componentName\": \"<string>\",\n \"resourceGroupIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.devhelm.io/api/v1/notification-policies/{id}/test")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"severity\": \"<string>\",\n \"monitorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"regions\": [\n \"<string>\"\n ],\n \"eventType\": \"<string>\",\n \"monitorType\": \"<string>\",\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"componentName\": \"<string>\",\n \"resourceGroupIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devhelm.io/api/v1/notification-policies/{id}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"severity\": \"<string>\",\n \"monitorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"regions\": [\n \"<string>\"\n ],\n \"eventType\": \"<string>\",\n \"monitorType\": \"<string>\",\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"componentName\": \"<string>\",\n \"resourceGroupIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"matched": true,
"matchedRules": [
"<string>"
],
"unmatchedRules": [
"<string>"
]
}
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}{
"status": 404,
"code": "NOT_FOUND",
"message": "Monitor not found",
"timestamp": 1737302400000,
"requestId": "5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a"
}Authorizations
API key (dh_live_...) or Auth0 JWT token
Path Parameters
Body
Event context for a dry-run match evaluation against a notification policy
Incident severity to test against (e.g. DOWN, DEGRADED, MAINTENANCE)
Monitor UUID to test against (monitoring events)
Affected region identifiers to test against (monitoring events)
Affected region identifiers to test against (monitoring events)
Incident event type to test against — short form (e.g. created, resolved, reopened) or full form (e.g. incident.created)
Monitor check type to test against (e.g. HTTP, DNS, MCP_SERVER)
Service catalog UUID to test against (status data events)
Component name to test against (status data events, e.g. "Actions")
Resource group UUIDs the entity belongs to, for resource_group_id_in rules
Resource group UUIDs the entity belongs to, for resource_group_id_in rules
Response
OK
Result of a dry-run match evaluation against a notification policy
Show child attributes
Show child attributes