curl --request GET \
--url https://api.rated.network/v1/eth/validators/proposals \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/eth/validators/proposals"
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/proposals', 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/proposals",
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/proposals"
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/proposals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/eth/validators/proposals")
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/proposals?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/eth/validators/proposals?limit=10&offset=10",
"results": [
[
{
"date": "2023-01-01",
"day": 796,
"endDate": "2023-01-07",
"endDay": 802,
"endEpoch": 63775,
"execution_proposed_empty_count": 0,
"hour": 19056,
"proposed_count": 0,
"proposer_duties_count": 0,
"startDate": "2023-01-01",
"startDay": 796,
"startEpoch": 63744
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}Get proposer duties metrics for a group of validators
This endpoint returns drilldowns on performance metrics around proposer duties 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/proposals \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/eth/validators/proposals"
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/proposals', 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/proposals",
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/proposals"
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/proposals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/eth/validators/proposals")
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/proposals?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/eth/validators/proposals?limit=10&offset=10",
"results": [
[
{
"date": "2023-01-01",
"day": 796,
"endDate": "2023-01-07",
"endDay": 802,
"endEpoch": 63775,
"execution_proposed_empty_count": 0,
"hour": 19056,
"proposed_count": 0,
"proposer_duties_count": 0,
"startDate": "2023-01-01",
"startDay": 796,
"startEpoch": 63744
}
]
]
}{
"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 Time buckets supported by Aurora aggregates.
Epoch is separate because Aurora would treat it as date_part.
hour, day, week, month, quarter, year, all granularity, validator