Get validator rewards metrics
curl --request GET \
--url https://api.rated.network/v1/solana/validators/{validator_id}/rewards \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/solana/validators/{validator_id}/rewards"
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}/rewards', 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}/rewards",
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}/rewards"
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}/rewards")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/solana/validators/{validator_id}/rewards")
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}/rewards?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/solana/validators/{validator_id}/rewards?limit=10&offset=10",
"results": [
[
{
"blockRewards": 250.2,
"delegatorMevClaimed": 100.1,
"fromEpoch": 597,
"fromSlot": 258212466,
"from_": "2024-12-14",
"jitoDelegatorPriorityFeeCommissionRate": 0.1,
"jitoDelegatorPriorityFeeRewardsClaimed": 25.02,
"mevCommissionRate": 0.07,
"mevTips": 1100.1,
"rentRewards": 50.01,
"stakeRewards": 25000.1,
"toEpoch": 598,
"toSlot": 258394459,
"validatorMevClaimed": 10.1,
"voteAccount": "voteAccount",
"voteCommissionRate": 0.07,
"voteRewards": 2500.1
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}Rewards
Get validator rewards metrics
This endpoint returns a bunch of useful information about the historical rewards earned by a single validator.
GET
/
v1
/
solana
/
validators
/
{validator_id}
/
rewards
Get validator rewards metrics
curl --request GET \
--url https://api.rated.network/v1/solana/validators/{validator_id}/rewards \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/solana/validators/{validator_id}/rewards"
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}/rewards', 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}/rewards",
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}/rewards"
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}/rewards")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/solana/validators/{validator_id}/rewards")
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}/rewards?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/solana/validators/{validator_id}/rewards?limit=10&offset=10",
"results": [
[
{
"blockRewards": 250.2,
"delegatorMevClaimed": 100.1,
"fromEpoch": 597,
"fromSlot": 258212466,
"from_": "2024-12-14",
"jitoDelegatorPriorityFeeCommissionRate": 0.1,
"jitoDelegatorPriorityFeeRewardsClaimed": 25.02,
"mevCommissionRate": 0.07,
"mevTips": 1100.1,
"rentRewards": 50.01,
"stakeRewards": 25000.1,
"toEpoch": 598,
"toSlot": 258394459,
"validatorMevClaimed": 10.1,
"voteAccount": "voteAccount",
"voteCommissionRate": 0.07,
"voteRewards": 2500.1
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}You can query this endpoint by using the
vote_accountaddress of a validator as the validator_id. The granularity of results can either be daily or around 20 minute intervals (3,000 slots).
Earliest data available is from April 1, 2024.
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