curl --request GET \
--url https://api.rated.network/v1/eth/validators/rewards \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/eth/validators/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/eth/validators/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/eth/validators/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/eth/validators/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/eth/validators/rewards")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/eth/validators/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/eth/validators/rewards?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/eth/validators/rewards?limit=10&offset=10",
"results": [
[
{
"date": "2023-01-01",
"day": 796,
"endDate": "2023-01-07",
"endDay": 802,
"endEpoch": 63775,
"endEpochBalance": 34230000000,
"endEpochEffectiveBalance": 32000000000,
"estimatedRewards": 56675239144,
"hour": 19056,
"rewards": 56766373292,
"startDate": "2023-01-01",
"startDay": 796,
"startEpoch": 63744,
"sumAllRewards": 72694727007,
"sumAttestationRewards": 50120815885,
"sumBaselineMev": 5266131924,
"sumBaselineMevWei": 5266131924000000000,
"sumConsensusBlockRewards": 6554423259,
"sumExternallySourcedExecutionRewards": 14862131536,
"sumMissedAttestationRewards": 269961427,
"sumMissedConsensusBlockRewards": 31228533,
"sumMissedExecutionRewards": 58181568,
"sumMissedSyncCommitteeRewards": 44317643,
"sumPriorityFees": 10662221791,
"sumPriorityFeesWei": 10662221791000000000,
"sumSyncCommitteeRewards": 44317643,
"validatorCount": 16075
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}Get rewards metrics for a group of validators
This endpoint returns aggregated rewards metrics for validators. You can use this endpoint to either aggregate data per validator across a time window or aggregate data for multiple validators per time period.
curl --request GET \
--url https://api.rated.network/v1/eth/validators/rewards \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/eth/validators/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/eth/validators/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/eth/validators/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/eth/validators/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/eth/validators/rewards")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/eth/validators/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/eth/validators/rewards?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/eth/validators/rewards?limit=10&offset=10",
"results": [
[
{
"date": "2023-01-01",
"day": 796,
"endDate": "2023-01-07",
"endDay": 802,
"endEpoch": 63775,
"endEpochBalance": 34230000000,
"endEpochEffectiveBalance": 32000000000,
"estimatedRewards": 56675239144,
"hour": 19056,
"rewards": 56766373292,
"startDate": "2023-01-01",
"startDay": 796,
"startEpoch": 63744,
"sumAllRewards": 72694727007,
"sumAttestationRewards": 50120815885,
"sumBaselineMev": 5266131924,
"sumBaselineMevWei": 5266131924000000000,
"sumConsensusBlockRewards": 6554423259,
"sumExternallySourcedExecutionRewards": 14862131536,
"sumMissedAttestationRewards": 269961427,
"sumMissedConsensusBlockRewards": 31228533,
"sumMissedExecutionRewards": 58181568,
"sumMissedSyncCommitteeRewards": 44317643,
"sumPriorityFees": 10662221791,
"sumPriorityFeesWei": 10662221791000000000,
"sumSyncCommitteeRewards": 44317643,
"validatorCount": 16075
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
mainnet, hoodi, holesky Query Parameters
The number of results returned per page
The number of results to skip before starting to return
End date
"2023-12-31"
Start date
"2023-01-01"
Start day
x >= 0"791"
End day
x >= 0"851"
Returns results based on UTC days (true) or ETH chain days (false)
A list of validator pubkeys you want to filter by
A list of validator indices you want to filter by
x >= 0The filter you want results to be sorted by
The sort order for the results
asc, desc The size of time increments you are looking to query. Use 'epoch' for per-epoch results, which also requires fromEpoch and toEpoch.
epoch, hour, day, week, month, quarter, year, all granularity, validator First epoch to return, inclusive. Required when granularity=epoch, and not accepted otherwise. Cannot be combined with the date or day filters.
x >= 0469400
Last epoch to return, inclusive. Required when granularity=epoch. Each response covers a range of epochs for every validator you asked for; follow the 'next' link until it is null. 'limit' and 'offset' do not apply here.
x >= 0469449
Page cursor, used when sortOrder=asc. Take it from the 'next' or 'previous' link rather than setting it yourself; omit it to start at fromEpoch. Use beforeEpoch when sortOrder=desc.
x >= 0469449
Page cursor, used when sortOrder=desc. Take it from the 'next' or 'previous' link rather than setting it yourself; omit it to start at toEpoch. Use afterEpoch when sortOrder=asc.
x >= 0469400