curl --request PATCH \
--url https://api.chainstack.com/v2/nodes/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My new node name"
}
'import requests
url = "https://api.chainstack.com/v2/nodes/{id}/"
payload = { "name": "My new node name" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'My new node name'})
};
fetch('https://api.chainstack.com/v2/nodes/{id}/', 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/{id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My new node name'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.chainstack.com/v2/nodes/{id}/"
payload := strings.NewReader("{\n \"name\": \"My new node name\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.chainstack.com/v2/nodes/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My new node name\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/nodes/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My new node name\"\n}"
response = http.request(request)
puts response.read_body{
"id": "ND-123-456-789",
"name": "My new node name",
"network": "ethereum-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>",
"fields": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Update a node with the Chainstack Platform API v2
Update the configuration or properties of a blockchain node using the Chainstack Platform API v2. Send a PATCH request to /v2/nodes// with new fields.
curl --request PATCH \
--url https://api.chainstack.com/v2/nodes/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My new node name"
}
'import requests
url = "https://api.chainstack.com/v2/nodes/{id}/"
payload = { "name": "My new node name" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'My new node name'})
};
fetch('https://api.chainstack.com/v2/nodes/{id}/', 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/{id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My new node name'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.chainstack.com/v2/nodes/{id}/"
payload := strings.NewReader("{\n \"name\": \"My new node name\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.chainstack.com/v2/nodes/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My new node name\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/nodes/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My new node name\"\n}"
response = http.request(request)
puts response.read_body{
"id": "ND-123-456-789",
"name": "My new node name",
"network": "ethereum-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>",
"fields": {}
}
}{
"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
A unique value identifying the Object.
Body
Name of the node.
Response
Name of the node.
Network identifier from the platform catalog, for example ethereum-mainnet.
Protocol name.
ID of the project.
ID of the cloud.
Cloud region.
Cloud provider.
Status of the node.
Protocol-specific attributes: https_endpoint, wss_endpoint, and api_namespaces, plus, depending on the protocol, fields such as beacon_endpoint, graphql_endpoint, grpc_endpoint, and grpc_x_token. Dedicated nodes can also return metrics_endpoint — see Dedicated node monitoring.
Endpoint URLs include the node's auth token, and grpc_x_token is the token itself — treat them as secrets.
Blockchain identifier.
"BC-000-000"
Was this page helpful?