Validate detection config health
curl --request POST \
--url https://app.chainpatrol.io/api/v2/detection/configs/validate \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"slug": "<string>",
"source": "<string>",
"minResults": 1,
"lookbackHours": 168,
"runBeforeValidate": false,
"includeDisabled": false
}
'import requests
url = "https://app.chainpatrol.io/api/v2/detection/configs/validate"
payload = {
"slug": "<string>",
"source": "<string>",
"minResults": 1,
"lookbackHours": 168,
"runBeforeValidate": False,
"includeDisabled": False
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
slug: '<string>',
source: '<string>',
minResults: 1,
lookbackHours: 168,
runBeforeValidate: false,
includeDisabled: false
})
};
fetch('https://app.chainpatrol.io/api/v2/detection/configs/validate', 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://app.chainpatrol.io/api/v2/detection/configs/validate",
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([
'slug' => '<string>',
'source' => '<string>',
'minResults' => 1,
'lookbackHours' => 168,
'runBeforeValidate' => false,
'includeDisabled' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$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://app.chainpatrol.io/api/v2/detection/configs/validate"
payload := strings.NewReader("{\n \"slug\": \"<string>\",\n \"source\": \"<string>\",\n \"minResults\": 1,\n \"lookbackHours\": 168,\n \"runBeforeValidate\": false,\n \"includeDisabled\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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://app.chainpatrol.io/api/v2/detection/configs/validate")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"<string>\",\n \"source\": \"<string>\",\n \"minResults\": 1,\n \"lookbackHours\": 168,\n \"runBeforeValidate\": false,\n \"includeDisabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.chainpatrol.io/api/v2/detection/configs/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"slug\": \"<string>\",\n \"source\": \"<string>\",\n \"minResults\": 1,\n \"lookbackHours\": 168,\n \"runBeforeValidate\": false,\n \"includeDisabled\": false\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"summary": {
"checkedConfigs": 123,
"passingConfigs": 123,
"failingConfigs": 123,
"lookbackHours": 123,
"minResults": 123
},
"validations": [
{
"configId": 123,
"source": "<string>",
"ran": true,
"runOk": true,
"runMessage": "<string>",
"recentResultCount": 123,
"valid": true
}
]
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Threats
Validate Detection Configs
Validate detection configs by checking recent detection results, optionally running each config first.
POST
/
detection
/
configs
/
validate
Validate detection config health
curl --request POST \
--url https://app.chainpatrol.io/api/v2/detection/configs/validate \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"slug": "<string>",
"source": "<string>",
"minResults": 1,
"lookbackHours": 168,
"runBeforeValidate": false,
"includeDisabled": false
}
'import requests
url = "https://app.chainpatrol.io/api/v2/detection/configs/validate"
payload = {
"slug": "<string>",
"source": "<string>",
"minResults": 1,
"lookbackHours": 168,
"runBeforeValidate": False,
"includeDisabled": False
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
slug: '<string>',
source: '<string>',
minResults: 1,
lookbackHours: 168,
runBeforeValidate: false,
includeDisabled: false
})
};
fetch('https://app.chainpatrol.io/api/v2/detection/configs/validate', 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://app.chainpatrol.io/api/v2/detection/configs/validate",
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([
'slug' => '<string>',
'source' => '<string>',
'minResults' => 1,
'lookbackHours' => 168,
'runBeforeValidate' => false,
'includeDisabled' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$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://app.chainpatrol.io/api/v2/detection/configs/validate"
payload := strings.NewReader("{\n \"slug\": \"<string>\",\n \"source\": \"<string>\",\n \"minResults\": 1,\n \"lookbackHours\": 168,\n \"runBeforeValidate\": false,\n \"includeDisabled\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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://app.chainpatrol.io/api/v2/detection/configs/validate")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"<string>\",\n \"source\": \"<string>\",\n \"minResults\": 1,\n \"lookbackHours\": 168,\n \"runBeforeValidate\": false,\n \"includeDisabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.chainpatrol.io/api/v2/detection/configs/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"slug\": \"<string>\",\n \"source\": \"<string>\",\n \"minResults\": 1,\n \"lookbackHours\": 168,\n \"runBeforeValidate\": false,\n \"includeDisabled\": false\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"summary": {
"checkedConfigs": 123,
"passingConfigs": 123,
"failingConfigs": 123,
"lookbackHours": 123,
"minResults": 123
},
"validations": [
{
"configId": 123,
"source": "<string>",
"ran": true,
"runOk": true,
"runMessage": "<string>",
"recentResultCount": 123,
"valid": true
}
]
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Overview
Validate detection configs by checking their recent detection results, optionally running each config first.Authorizations
Your API key. This is required by most endpoints to access our API programatically. Reach out to us at support@chainpatrol.io to get an API key for your use.
Body
application/json
Was this page helpful?
⌘I