Get validator block insights
curl --request GET \
--url https://api.rated.network/v1/solana/validators/{validator_id}/blockInsights \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/solana/validators/{validator_id}/blockInsights"
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/v1/solana/validators/{validator_id}/blockInsights', 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/v1/solana/validators/{validator_id}/blockInsights",
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/v1/solana/validators/{validator_id}/blockInsights"
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/v1/solana/validators/{validator_id}/blockInsights")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/solana/validators/{validator_id}/blockInsights")
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{
"next": "https://api.rated.network//v1/solana/validators/{validator_id}/blockInsights?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/solana/validators/{validator_id}/blockInsights?limit=10&offset=10",
"results": [
[
{
"avgComputeUnits": 25000.2,
"avgMevRewards": 20.1,
"avgRewards": 50.01,
"avgTransactions": 250.1,
"from_": "2024-12-14",
"percentageFailedTx": 0.2,
"percentageHighValueTx": 0.1,
"voteAccount": "voteAccount"
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}Performance
Get validator block insights
This endpoint returns information about the composition of blocks produced by a validator. Use this endpoint to retrieve historical block insights for a specific validator.
GET
/
v1
/
solana
/
validators
/
{validator_id}
/
blockInsights
Get validator block insights
curl --request GET \
--url https://api.rated.network/v1/solana/validators/{validator_id}/blockInsights \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/solana/validators/{validator_id}/blockInsights"
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/v1/solana/validators/{validator_id}/blockInsights', 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/v1/solana/validators/{validator_id}/blockInsights",
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/v1/solana/validators/{validator_id}/blockInsights"
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/v1/solana/validators/{validator_id}/blockInsights")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/solana/validators/{validator_id}/blockInsights")
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{
"next": "https://api.rated.network//v1/solana/validators/{validator_id}/blockInsights?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/solana/validators/{validator_id}/blockInsights?limit=10&offset=10",
"results": [
[
{
"avgComputeUnits": 25000.2,
"avgMevRewards": 20.1,
"avgRewards": 50.01,
"avgTransactions": 250.1,
"from_": "2024-12-14",
"percentageFailedTx": 0.2,
"percentageHighValueTx": 0.1,
"voteAccount": "voteAccount"
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}You can query this endpoint by using the
vote_account address of a validator as the validator_id. The granularity of results can either be daily or around 20 minute intervals (3,000 slots).
Earliest daily data available is from March 1, 2025.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Query Parameters
The number of results returned per page
The number of results to skip before starting to return
End date
Example:
"2023-12-31"
Start date
Example:
"2023-01-01"
End slot multiple of 3k
Required range:
x >= 0Start slot multiple of 3k
Required range:
x >= 0UTC day or slot multiple of 3k
UTC day or 3k block interval
Available options:
3k, day