List all nodes
curl --request GET \
--url https://api.chainstack.com/v2/nodes/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.chainstack.com/v2/nodes/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.chainstack.com/v2/nodes/', 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.chainstack.com/v2/nodes/",
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.chainstack.com/v2/nodes/"
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.chainstack.com/v2/nodes/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/nodes/")
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{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "ND-123-456-789",
"name": "My Ethereum node",
"network": "mainnet",
"protocol": "ethereum",
"project": "PR-123-456-789",
"cloud": "CC-0001",
"region": "us-east-1",
"provider": "aws",
"status": "running",
"details": {
"api_namespaces": [
"net",
"eth",
"web3",
"txpool",
"debug"
],
"https_endpoint": "https://nd-123-456-789.p2pify.com",
"wss_endpoint": "wss://ws-nd-123-456-789.p2pify.com",
"beacon_endpoint": "https://beacon-nd-123-456-789.p2pify.com",
"graphql_endpoint": "https://nd-123-456-789.p2pify.com/graphql"
},
"blockchain": "BC-000-000"
}
]
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Node v2
List all nodes with the Chainstack Platform API v2
List every blockchain node in your Chainstack organization using the Platform API v2. Send a GET request to /v2/nodes/ for the paginated node list.
GET
/
v2
/
nodes
/
List all nodes
curl --request GET \
--url https://api.chainstack.com/v2/nodes/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.chainstack.com/v2/nodes/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.chainstack.com/v2/nodes/', 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.chainstack.com/v2/nodes/",
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.chainstack.com/v2/nodes/"
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.chainstack.com/v2/nodes/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/nodes/")
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{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "ND-123-456-789",
"name": "My Ethereum node",
"network": "mainnet",
"protocol": "ethereum",
"project": "PR-123-456-789",
"cloud": "CC-0001",
"region": "us-east-1",
"provider": "aws",
"status": "running",
"details": {
"api_namespaces": [
"net",
"eth",
"web3",
"txpool",
"debug"
],
"https_endpoint": "https://nd-123-456-789.p2pify.com",
"wss_endpoint": "wss://ws-nd-123-456-789.p2pify.com",
"beacon_endpoint": "https://beacon-nd-123-456-789.p2pify.com",
"graphql_endpoint": "https://nd-123-456-789.p2pify.com/graphql"
},
"blockchain": "BC-000-000"
}
]
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Chainstack API uses API keys to authenticate requests. You can view and manage your API keys in the platform UI.
Your API keys carry many privileges, so be sure to keep them secure!
Provide your API key as the Authorization header. The value of the header consists of Bearer prefix and secret key generated through the platform UI.
curl -X GET 'https://api.chainstack.com/v1/organization/' \
--header 'Authorization: Bearer FX7CWlLg.FMpAO8cgCX2N7s41EncRru2nb5CmTZUt'
All API requests must be made over HTTPS.
Query Parameters
Which field to use when ordering the results.
Use the - prefix to perform descending ordering (-name).
Available options:
name, created_at A page number within the paginated result set.
Last modified on May 4, 2026
Was this page helpful?