Get daily vote latency across all geolocations
curl --request GET \
--url https://api.rated.network/v1/solana/network/geolocation/latency \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/solana/network/geolocation/latency"
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/network/geolocation/latency', 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/network/geolocation/latency",
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/network/geolocation/latency"
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/network/geolocation/latency")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/solana/network/geolocation/latency")
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/network/geolocation/latency?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/solana/network/geolocation/latency?limit=10&offset=10",
"results": [
[
{
"city": "Frankfurt",
"country": "Germany",
"day": "2024-01-01",
"fromSlot": 250000000,
"hostingProvider": "Hoster Roster",
"medianVoteLatency": 1.202,
"toSlot": 250200000
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}Performance
Get daily vote latency across all geolocations
This endpoint returns the median vote latency across all hosting providers/data centers for the specified date.
GET
/
v1
/
solana
/
network
/
geolocation
/
latency
Get daily vote latency across all geolocations
curl --request GET \
--url https://api.rated.network/v1/solana/network/geolocation/latency \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rated.network/v1/solana/network/geolocation/latency"
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/network/geolocation/latency', 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/network/geolocation/latency",
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/network/geolocation/latency"
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/network/geolocation/latency")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rated.network/v1/solana/network/geolocation/latency")
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/network/geolocation/latency?limit=10&offset=30",
"pages": 10,
"previous": "https://api.rated.network//v1/solana/network/geolocation/latency?limit=10&offset=10",
"results": [
[
{
"city": "Frankfurt",
"country": "Germany",
"day": "2024-01-01",
"fromSlot": 250000000,
"hostingProvider": "Hoster Roster",
"medianVoteLatency": 1.202,
"toSlot": 250200000
}
]
]
}{
"detail": [
{
"msg": "<string>",
"type": "<string>",
"loc": [
"<string>"
]
}
]
}This endpoint is retired and returns
410 GoneAlpenglow moves Solana consensus votes off-chain, so vote latency is no longer measured for any location. The endpoint returns 410 for every date, including dates before the upgrade.See the changelog for details.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The number of results returned per page
The number of results to skip before starting to return
UTC date to retrieve data for
Example:
"2024-12-01"
Available options:
asc, desc Choose between latency, country, city or hostingProvider
Available options:
networkPenetration, raver, delegatorApy, latency, country, city, hostingProvider