Get organization metrics summary
curl --request POST \
--url https://app.chainpatrol.io/api/v2/metrics/summary \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"slug": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"brandIds": [
1
]
}
'import requests
url = "https://app.chainpatrol.io/api/v2/metrics/summary"
payload = {
"slug": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"brandIds": [1]
}
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>', startDate: '<string>', endDate: '<string>', brandIds: [1]})
};
fetch('https://app.chainpatrol.io/api/v2/metrics/summary', 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/metrics/summary",
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>',
'startDate' => '<string>',
'endDate' => '<string>',
'brandIds' => [
1
]
]),
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/metrics/summary"
payload := strings.NewReader("{\n \"slug\": \"<string>\",\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\",\n \"brandIds\": [\n 1\n ]\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/metrics/summary")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"<string>\",\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\",\n \"brandIds\": [\n 1\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.chainpatrol.io/api/v2/metrics/summary")
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 \"startDate\": \"<string>\",\n \"endDate\": \"<string>\",\n \"brandIds\": [\n 1\n ]\n}"
response = http.request(request)
puts response.read_body{
"metrics": {
"reports": 123,
"newThreats": 123,
"threatsWatchlisted": 123,
"takedownsFiled": 123,
"takedownsCompleted": 123,
"domainThreats": 123,
"twitterThreats": 123,
"telegramThreats": 123,
"otherThreats": 123
},
"blockedByDay": [
{
"date": "<string>",
"count": 123
}
],
"blockedByType": [
{
"type": "<string>",
"count": 123
}
]
}{
"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": []
}Metrics
Get Metrics Summary
Get customer-facing organization metrics and blocked threat breakdowns for a date range.
POST
/
metrics
/
summary
Get organization metrics summary
curl --request POST \
--url https://app.chainpatrol.io/api/v2/metrics/summary \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"slug": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"brandIds": [
1
]
}
'import requests
url = "https://app.chainpatrol.io/api/v2/metrics/summary"
payload = {
"slug": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"brandIds": [1]
}
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>', startDate: '<string>', endDate: '<string>', brandIds: [1]})
};
fetch('https://app.chainpatrol.io/api/v2/metrics/summary', 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/metrics/summary",
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>',
'startDate' => '<string>',
'endDate' => '<string>',
'brandIds' => [
1
]
]),
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/metrics/summary"
payload := strings.NewReader("{\n \"slug\": \"<string>\",\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\",\n \"brandIds\": [\n 1\n ]\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/metrics/summary")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"<string>\",\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\",\n \"brandIds\": [\n 1\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.chainpatrol.io/api/v2/metrics/summary")
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 \"startDate\": \"<string>\",\n \"endDate\": \"<string>\",\n \"brandIds\": [\n 1\n ]\n}"
response = http.request(request)
puts response.read_body{
"metrics": {
"reports": 123,
"newThreats": 123,
"threatsWatchlisted": 123,
"takedownsFiled": 123,
"takedownsCompleted": 123,
"domainThreats": 123,
"twitterThreats": 123,
"telegramThreats": 123,
"otherThreats": 123
},
"blockedByDay": [
{
"date": "<string>",
"count": 123
}
],
"blockedByType": [
{
"type": "<string>",
"count": 123
}
]
}{
"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
Get customer-facing organization metrics and blocked threat breakdowns for a date range.The date range is only applied when you send both
startDate and endDate.
With one or neither, every metric is all-time. Each metric filters on its own
timestamp: threat counts (newThreats, domainThreats, …) on when the threat was
blocked, threatsWatchlisted on when your organization reported the asset.newThreats counts every confirmed threat, including pending blocks for
organizations whose protection is not active. To list the threats behind it, use
/detection/list with the blockStatus filter or
/threats/list with includePending. To list the
assets behind threatsWatchlisted, use
/organization/watchlist.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?