Validator Summaries
curl --request GET \
--url https://api.rated.network/v0/solana/validators \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v0/solana/validators"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rated.network/v0/solana/validators', 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.rated.network/v0/solana/validators",
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://api.rated.network/v0/solana/validators"
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://api.rated.network/v0/solana/validators")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v0/solana/validators")
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{
"page": {
"from": 123,
"to": 123,
"granularity": "3k",
"size": 1
},
"total": 1,
"data": [
{
"delegatorApy": 0.05,
"effectiveness": 0.984,
"jitoPriorityFeeCommissionRate": 0.05,
"mevCommissionRate": 0.05,
"name": "name",
"networkPenetration": 0.24,
"stakeAccountCount": 100,
"timeWindow": "30d",
"validatorApy": 0.05,
"validatorIdentity": "validatorIdentity",
"validatorName": "validatorName",
"voteAccount": "voteAccount",
"voteCommissionRate": 0.05,
"voteLatency": 2.984
}
],
"next": "<string>"
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}Validators
Validator summaries
GET
/
v0
/
solana
/
validators
Validator Summaries
curl --request GET \
--url https://api.rated.network/v0/solana/validators \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v0/solana/validators"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rated.network/v0/solana/validators', 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.rated.network/v0/solana/validators",
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://api.rated.network/v0/solana/validators"
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://api.rated.network/v0/solana/validators")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v0/solana/validators")
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{
"page": {
"from": 123,
"to": 123,
"granularity": "3k",
"size": 1
},
"total": 1,
"data": [
{
"delegatorApy": 0.05,
"effectiveness": 0.984,
"jitoPriorityFeeCommissionRate": 0.05,
"mevCommissionRate": 0.05,
"name": "name",
"networkPenetration": 0.24,
"stakeAccountCount": 100,
"timeWindow": "30d",
"validatorApy": 0.05,
"validatorIdentity": "validatorIdentity",
"validatorName": "validatorName",
"voteAccount": "voteAccount",
"voteCommissionRate": 0.05,
"voteLatency": 2.984
}
],
"next": "<string>"
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}This endpoint returns high level information about a validator over the time period such as its entity name, network penetration, annual percentage yield (APY), and effectiveness.
Similar to the Single validator summary but returns the summary stats for all validators.
Here’s how to interpret the inputs required to operate it:
On the
| Parameter | Description |
|---|---|
window | Window of the aggregation, with 1d, 7d, 30d and all being the supported values |
from | From a specific validator’s ranking based on their order in terms of network_penetration |
size | The number of results included per page |
1d time period, the APY takes into account the rewards received for the last 3 days to smooth out the noise given Solana’s staking rewards schedule, which is every epoch (~2 days).Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Available options:
1d, 7d, 30d, all Required range:
x >= 0Required range:
1 <= x <= 200Network penetration, Raver, delegator APY or vote latency
Available options:
networkPenetration, raver, delegatorApy, latency, country, city, hostingProvider Available options:
asc, desc