curl --request GET \
--url https://api.range.org/v2/risk/alert-packs/{pack_type} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.range.org/v2/risk/alert-packs/{pack_type}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.range.org/v2/risk/alert-packs/{pack_type}', 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.range.org/v2/risk/alert-packs/{pack_type}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.range.org/v2/risk/alert-packs/{pack_type}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
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.range.org/v2/risk/alert-packs/{pack_type}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/risk/alert-packs/{pack_type}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pack_type": "squads",
"networks": [
"solana"
],
"members": [
{
"template_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"rule_type": "sol-squads-large-tx-threadpool",
"network": "solana",
"label": "Large Squads Transaction",
"description": "A large transaction was proposed on {{network}}",
"required": true,
"default_severity": "high",
"trigger": "BLOCK",
"parameters": [
{
"label": "Wallet",
"description": "The address to monitor",
"field": "address",
"field_type": "Address",
"optional": false
}
]
}
]
}Get the member templates of one multisig alert pack
Returns everything needed to create a pack of this type in one call: each member template with its id, network, parameters, and whether it is required. Feed the ids and parameters into POST /v1/risk/alert-rules/pack.
curl --request GET \
--url https://api.range.org/v2/risk/alert-packs/{pack_type} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.range.org/v2/risk/alert-packs/{pack_type}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.range.org/v2/risk/alert-packs/{pack_type}', 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.range.org/v2/risk/alert-packs/{pack_type}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.range.org/v2/risk/alert-packs/{pack_type}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
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.range.org/v2/risk/alert-packs/{pack_type}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/risk/alert-packs/{pack_type}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pack_type": "squads",
"networks": [
"solana"
],
"members": [
{
"template_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"rule_type": "sol-squads-large-tx-threadpool",
"network": "solana",
"label": "Large Squads Transaction",
"description": "A large transaction was proposed on {{network}}",
"required": true,
"default_severity": "high",
"trigger": "BLOCK",
"parameters": [
{
"label": "Wallet",
"description": "The address to monitor",
"field": "address",
"field_type": "Address",
"optional": false
}
]
}
]
}Authorizations
Authorization method required to allow user to access the api endpoints.
Path Parameters
The pack type to retrieve (e.g. squads).
"squads"
Query Parameters
Preferred network for rule types registered on several networks: the pack then lists only the template on this network for each such type. Types with no template on this network keep all their templates, so the response always covers every required type.
64"solana"
Response
Pack type identifier.
"squads"
Networks covered by the returned member templates. Narrowed by the network query parameter where a variant exists there.
["solana"]
Member templates, required first.
Show child attributes
Show child attributes
Was this page helpful?