Get vulnerability rollups for authorized partner tenants.
curl --request GET \
--url https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups \
--header 'Authorization: Bearer <token>'import requests
url = "https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups', 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://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"root_tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from": "2023-12-25",
"to": "2023-12-25",
"group_by": "<string>",
"limit": 123,
"coverage": [
{
"tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenant_host": "<string>"
}
],
"tenants": [
{
"tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenant_host": "<string>",
"rows": [
{
"group_value": "<string>",
"metric_group": "<string>",
"metric_name": "<string>",
"severity": "<string>",
"asset_type": "<string>",
"value_int": 123,
"value_float": 123,
"sample_count": 123,
"reconciliation_state": "matched"
}
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Reporting
Get vulnerability rollups for authorized partner tenants.
This endpoint returns per-tenant vulnerability rollups, grouped and ranked by the requested dimension, over a bounded date range for the authorized partner’s tenant scope.
Notes:
tenant_ids(optional, comma-separated) restricts results to specific tenants.from/to(required,yyyy-MM-dd) bound the rollup date range.frommust not be later thanto.group_by(optional, one ofcve,root_cause,severity,asset_type; defaultcve) selects the rollup dimension.limit(optional, 1-100, default 25) caps the number of rollup rows returned per tenant.
Required headers:
Authorization: Bearer {token}(requires thepulse.readscope)
GET
/
pulse
/
v1
/
partner
/
dashboards
/
vulnerability-rollups
Get vulnerability rollups for authorized partner tenants.
curl --request GET \
--url https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups \
--header 'Authorization: Bearer <token>'import requests
url = "https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups', 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://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.cyrisma.com/app/pulse/v1/partner/dashboards/vulnerability-rollups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"root_tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from": "2023-12-25",
"to": "2023-12-25",
"group_by": "<string>",
"limit": 123,
"coverage": [
{
"tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenant_host": "<string>"
}
],
"tenants": [
{
"tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenant_host": "<string>",
"rows": [
{
"group_value": "<string>",
"metric_group": "<string>",
"metric_name": "<string>",
"severity": "<string>",
"asset_type": "<string>",
"value_int": 123,
"value_float": 123,
"sample_count": 123,
"reconciliation_state": "matched"
}
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Authorizations
A Tenant Authority machine-client token from POST /v1/auth/client-token, carrying subject_type=machine_client and the pulse.read scope.
Query Parameters
Comma-separated tenant UUIDs to scope the list to. Omit to use every tenant the caller is authorized for.
Start of the window, RFC 3339. Treated as UTC.
End of the window, RFC 3339. Treated as UTC.
Rollup grouping key.
Maximum number of rollup groups to return.
