List node access rules
curl --request GET \
--url https://api.chainstack.com/v2/nodes/{node_id}/access-rules/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.chainstack.com/v2/nodes/{node_id}/access-rules/"
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/{node_id}/access-rules/', 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/{node_id}/access-rules/",
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/{node_id}/access-rules/"
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/{node_id}/access-rules/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/nodes/{node_id}/access-rules/")
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": 2,
"next": null,
"previous": null,
"results": [
{
"id": "NAR-123-456-789",
"node_id": "ND-123-456-789",
"type": "ip",
"value": "203.0.113.10",
"status": "activated",
"created_at": "2026-10-01T09:30:00.000000Z",
"updated_at": "2026-10-01T09:45:00.000000Z"
},
{
"id": "NAR-987-654-321",
"node_id": "ND-123-456-789",
"type": "origin",
"value": "*.example.com",
"status": "deactivated",
"created_at": "2026-10-02T11:00:00.000000Z",
"updated_at": "2026-10-02T11:00:00.000000Z"
}
]
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Node access rules v2
List node access rules with the Chainstack Platform API v2
List the IP address and origin access rules on a node using the Chainstack Platform API v2. Send a GET request to /v2/nodes//access-rules/, optionally filtered by type and status.
GET
/
v2
/
nodes
/
{node_id}
/
access-rules
/
List node access rules
curl --request GET \
--url https://api.chainstack.com/v2/nodes/{node_id}/access-rules/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.chainstack.com/v2/nodes/{node_id}/access-rules/"
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/{node_id}/access-rules/', 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/{node_id}/access-rules/",
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/{node_id}/access-rules/"
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/{node_id}/access-rules/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/nodes/{node_id}/access-rules/")
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": 2,
"next": null,
"previous": null,
"results": [
{
"id": "NAR-123-456-789",
"node_id": "ND-123-456-789",
"type": "ip",
"value": "203.0.113.10",
"status": "activated",
"created_at": "2026-10-01T09:30:00.000000Z",
"updated_at": "2026-10-01T09:45:00.000000Z"
},
{
"id": "NAR-987-654-321",
"node_id": "ND-123-456-789",
"type": "origin",
"value": "*.example.com",
"status": "deactivated",
"created_at": "2026-10-02T11:00:00.000000Z",
"updated_at": "2026-10-02T11:00:00.000000Z"
}
]
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"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.
Path Parameters
ID of the node.
Example:
"ND-123-456-789"
Query Parameters
Filter by rule type.
Available options:
ip, origin Filter by rule status.
Available options:
activated, deactivated A page number within the paginated result set.
Last modified on October 5, 2026
Was this page helpful?