getBlocks
curl --request POST \
--url https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "getBlocks",
"params": [
166974442
]
}
'import requests
url = "https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "getBlocks",
"params": [166974442]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({id: 1, jsonrpc: '2.0', method: 'getBlocks', params: [166974442]})
};
fetch('https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b', 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://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'getBlocks',
'params' => [
166974442
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"getBlocks\",\n \"params\": [\n 166974442\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"getBlocks\",\n \"params\": [\n 166974442\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"getBlocks\",\n \"params\": [\n 166974442\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": [
123
]
}Solana node API
getBlocks | Solana
The Solana getBlocks method returns a list of confirmed blocks within a specified slot range. Available on Solana via Chainstack JSON-RPC nodes.
POST
/
9de47db917d4f69168e3fed02217d15b
getBlocks
curl --request POST \
--url https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "getBlocks",
"params": [
166974442
]
}
'import requests
url = "https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "getBlocks",
"params": [166974442]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({id: 1, jsonrpc: '2.0', method: 'getBlocks', params: [166974442]})
};
fetch('https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b', 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://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'getBlocks',
'params' => [
166974442
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"getBlocks\",\n \"params\": [\n 166974442\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"getBlocks\",\n \"params\": [\n 166974442\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nd-326-444-187.p2pify.com/9de47db917d4f69168e3fed02217d15b")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"getBlocks\",\n \"params\": [\n 166974442\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": [
123
]
}Range limit: maximum 500,000 blocks per request. Archive data: this method supports fetching historical data on Global Nodes. See Solana method limits.
Solana getBlocks method
The Solana getBlocks method returns a list of confirmed blocks within a specified slot range.
This method provides a list of block heights that have been confirmed by the network. It is useful for retrieving a range of blocks for analysis or display.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
startSlot— the start slot of the range.endSlot— (optional) the end slot of the range. If not provided, the method will return all confirmed blocks from thestartSlotto the latest block.
Response
value— an array of confirmed block heights within the specified range.
Use case
A practical use case forgetBlocks is to retrieve a range of confirmed blocks for analysis or display. This can be useful for block explorers, wallets, or other applications that need to display or make use of this information.Last modified on June 22, 2026
Was this page helpful?