{
  "schema_version": 2,
  "id": "operate/rs/references/rest-api/requests/nodes",
  "title": "Nodes requests",
  "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/",
  "summary": "Node requests",
  "tags": [
    "docs",
    "operate",
    "rs"
  ],
  "last_updated": "2026-10-05T16:11:44+01:00",
  "children": [
    {
      "id": "operate/rs/references/rest-api/requests/nodes/actions",
      "summary": "Node action requests",
      "title": "Node actions requests",
      "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/actions/"
    },
    {
      "id": "operate/rs/references/rest-api/requests/nodes/alerts",
      "summary": "Node alert requests",
      "title": "Node alerts requests",
      "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/alerts/"
    },
    {
      "id": "operate/rs/references/rest-api/requests/nodes/check",
      "summary": "Requests that run checks on a cluster node.",
      "title": "Check node requests",
      "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/check/"
    },
    {
      "id": "operate/rs/references/rest-api/requests/nodes/debuginfo",
      "summary": "Documents the Redis Software REST API /nodes/debuginfo requests.",
      "title": "Node debug info requests",
      "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/debuginfo/"
    },
    {
      "id": "operate/rs/references/rest-api/requests/nodes/snapshots",
      "summary": "Node snapshot requests",
      "title": "Node snapshot requests",
      "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/snapshots/"
    },
    {
      "id": "operate/rs/references/rest-api/requests/nodes/stats",
      "summary": "Node statistics requests",
      "title": "Node stats requests",
      "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/stats/"
    },
    {
      "id": "operate/rs/references/rest-api/requests/nodes/status",
      "summary": "Requests that return a node's hostname and role.",
      "title": "Node status requests",
      "url": "https://redis.io/docs/latest/operate/rs/references/rest-api/requests/nodes/status/"
    }
  ],
  "page_type": "content",
  "content_hash": "0077cce77b59c15ddc369771655426cb1eaee4898e97c5342b7948c0fae5666f",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "| Method | Path | Description |\n|--------|------|-------------|\n| [GET](#get-all-nodes) | `/v1/nodes` | Get all cluster nodes |\n| [GET](#get-node) | `/v1/nodes/{uid}` | Get a single cluster node |\n| [PUT](#put-node) | `/v1/nodes/{uid}` | Update a node |"
    },
    {
      "id": "get-all-nodes",
      "title": "Get all nodes",
      "role": "content",
      "text": "[code example]\n\nGet all cluster nodes."
    },
    {
      "id": "permissions",
      "title": "Permissions",
      "role": "security",
      "text": "| Permission name | Roles |\n|-----------------|-------|\n| [view_all_nodes_info](https://redis.io/docs/latest/operate/rs/references/rest-api/permissions#view_all_nodes_info) | admin<br />cluster_member<br />cluster_viewer<br />db_member<br />db_viewer<br />user_manager |"
    },
    {
      "id": "get-all-request",
      "title": "Request",
      "role": "content",
      "text": "#### Example HTTP request\n\n[code example]\n\n#### Headers\n\n| Key | Value | Description |\n|-----|-------|-------------|\n| Host | cnm.cluster.fqdn | Domain name |\n| Accept | application/json | Accepted media type |"
    },
    {
      "id": "get-all-response",
      "title": "Response",
      "role": "returns",
      "text": "Returns a JSON array of [node objects](https://redis.io/docs/latest/operate/rs/references/rest-api/objects/node).\n\n#### Example JSON body\n\n[code example]\n\n#### Status codes {#get-all-status-codes}\n\n| Code | Description |\n|------|-------------|\n| [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) | No error |"
    },
    {
      "id": "get-node",
      "title": "Get node",
      "role": "content",
      "text": "[code example]\n\nGet a single cluster node."
    },
    {
      "id": "permissions-1",
      "title": "Permissions",
      "role": "security",
      "text": "| Permission name | Roles |\n|-----------------|-------|\n| [view_node_info](https://redis.io/docs/latest/operate/rs/references/rest-api/permissions#view_node_info) | admin<br />cluster_member<br />cluster_viewer<br />db_member<br />db_viewer<br />user_manager |"
    },
    {
      "id": "get-request",
      "title": "Request",
      "role": "content",
      "text": "#### Example HTTP request\n\n[code example]\n\n#### Headers\n\n| Key | Value | Description |\n|-----|-------|-------------|\n| Host | cnm.cluster.fqdn | Domain name |\n| Accept | application/json | Accepted media type |\n\n#### URL parameters\n\n| Field | Type | Description |\n|-------|------|-------------|\n| uid | integer | The unique ID of the node requested. |"
    },
    {
      "id": "get-response",
      "title": "Response",
      "role": "returns",
      "text": "Returns a [node object](https://redis.io/docs/latest/operate/rs/references/rest-api/objects/node).\n\n#### Example JSON body\n\n[code example]"
    },
    {
      "id": "get-status-codes",
      "title": "Status codes",
      "role": "content",
      "text": "| Code | Description |\n|------|-------------|\n| [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) | No error |\n| [404 Not Found](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5) | Node UID does not exist |"
    },
    {
      "id": "put-node",
      "title": "Update node",
      "role": "content",
      "text": "[code example]\n\nUpdate a [node object](https://redis.io/docs/latest/operate/rs/references/rest-api/objects/node).\n\nCurrently, you can edit the following attributes:\n\n| Field | Type/Value | Description |\n|-------|------------|-------------|\n| accept_servers | boolean (default:&nbsp;true) | The node only accepts new shards if `accept_servers` is `true` |\n| addr | string | Internal IP address of node |\n| external_addr | complex object | External IP addresses of node. `GET /v1/jsonschema` to retrieve the object's structure. |\n| max_listeners | integer | Maximum number of listeners on the node |\n| max_redis_forks | integer (default: -1) | Maximum number of background processes forked from shards that can exist on the node at any given time. Set to 0 for unlimited. Set to -1 to use cluster settings. |\n| max_redis_servers | integer | Maximum number of shards on the node |\n| max_slave_full_syncs | integer (default: -1) | Maximum number of simultaneous replica full syncs that can run at any given time. Set to 0 for unlimited. Set to -1 to use cluster settings. |\n| rack_id | string | Rack ID where node is installed |\n| recovery_path | string | Recovery files path |\n| second_rack_id | string | Second rack ID where node is installed |\n\n> [!NOTE]\n> You can only update the `addr` attribute for offline nodes. Otherwise, the request returns an error."
    },
    {
      "id": "permissions-2",
      "title": "Permissions",
      "role": "security",
      "text": "| Permission name | Roles |\n|-----------------|-------|\n| [update_node](https://redis.io/docs/latest/operate/rs/references/rest-api/permissions#update_node) | admin |"
    },
    {
      "id": "put-request",
      "title": "Request",
      "role": "content",
      "text": "#### Example HTTP request\n\n[code example]\n\n#### Example JSON body\n\n[code example]\n\n#### Request headers\n\n| Key | Value | Description |\n|-----|-------|-------------|\n| Host | cluster.fqdn | Domain name |\n| Accept | application/json | Accepted media type |\n| Content-Type | application/json | Media type of request/response body |\n\n\n#### URL parameters\n\n| Field | Type | Description |\n|-------|------|-------------|\n| uid | integer | The unique ID of the updated node. |\n\n\n#### Body\n\n| Field | Type | Description |\n|-------|------|-------------|\n| addr | string | Internal IP address of node |\n| external_addr | JSON array | External IP addresses of the node |\n| recovery_path | string | Path for recovery files |\n| accept_servers | boolean | If true, no shards will be created on the node |"
    },
    {
      "id": "put-response",
      "title": "Response",
      "role": "returns",
      "text": "If the request is successful, the body will be empty. Otherwise, it may contain a JSON object with an error code and error message.\n\n#### Status codes {#put-status-codes}\n\n| Code | Description |\n|------|-------------|\n| [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) | No error, the request has been processed. |\n| [406 Not Acceptable](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7) | Update request cannot be processed. |\n| [400 Bad Request](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1) | Bad content provided. |\n\n#### Error codes {#put-error-codes}\n\n| Code | Description |\n|------|-------------|\n| node_not_found | Node does not exist |\n| node_not_offline | Attempted to change node address while it is online |\n| node_already_populated | The node contains shards or endpoints, cannot disable accept_servers |\n| invalid_oss_cluster_port_mapping | Cannot enable \"accept_servers\" since there are databases with \"oss_cluster_port_mapping\" that do not have a port configuration for the current node |\n| node_already_has_rack_id | Attempted to change node's rack_id when it already has one |"
    }
  ],
  "examples": [
    {
      "id": "get-all-nodes-ex0",
      "language": "sh",
      "code": "GET /v1/nodes",
      "section_id": "get-all-nodes"
    },
    {
      "id": "get-all-request-ex0",
      "language": "sh",
      "code": "GET /v1/nodes",
      "section_id": "get-all-request"
    },
    {
      "id": "get-all-response-ex0",
      "language": "json",
      "code": "[\n    {\n      \"uid\": 1,\n      \"status\": \"active\",\n      \"uptime\": 262735,\n      \"total_memory\": 6260334592,\n      \"software_version\": \"0.90.0-1\",\n      \"ephemeral_storage_size\": 20639797248,\n      \"persistent_storage_path\": \"/var/opt/redislabs/persist\",\n      \"persistent_storage_size\": 20639797248,\n      \"os_version\": \"Ubuntu 14.04.2 LTS\",\n      \"ephemeral_storage_path\": \"/var/opt/redislabs/tmp\",\n      \"architecture\": \"x86_64\",\n      \"shard_count\": 23,\n      \"public_addr\": \"\",\n      \"cores\": 4,\n      \"rack_id\": \"\",\n      \"supported_database_versions\": [\n        {\n          \"db_type\": \"memcached\",\n          \"version\": \"1.4.17\"\n        },\n        {\n          \"db_type\": \"redis\",\n          \"version\": \"2.6.16\"\n        },\n        {\n          \"db_type\": \"redis\",\n          \"version\": \"2.8.19\"\n        }\n      ],\n      \"shard_list\": [1, 3, 4],\n      \"addr\": \"10.0.3.61\"\n    },\n    {\n      \"uid\": 1,\n      \"status\": \"active\",\n      \"// additional fields...\"\n    }\n]",
      "section_id": "get-all-response"
    },
    {
      "id": "get-node-ex0",
      "language": "sh",
      "code": "GET /v1/nodes/{int: uid}",
      "section_id": "get-node"
    },
    {
      "id": "get-request-ex0",
      "language": "sh",
      "code": "GET /v1/nodes/1",
      "section_id": "get-request"
    },
    {
      "id": "get-response-ex0",
      "language": "json",
      "code": "{\n    \"uid\": 1,\n    \"name\": \"node:1\",\n    \"// additional fields...\"\n}",
      "section_id": "get-response"
    },
    {
      "id": "put-node-ex0",
      "language": "sh",
      "code": "PUT /v1/nodes/{int: uid}",
      "section_id": "put-node"
    },
    {
      "id": "put-request-ex0",
      "language": "sh",
      "code": "PUT /v1/nodes/1",
      "section_id": "put-request"
    },
    {
      "id": "put-request-ex1",
      "language": "json",
      "code": "{\n    \"addr\": \"10.0.0.1\",\n    \"external_addr\" : [\n        \"192.0.2.24\"\n    ]\n}",
      "section_id": "put-request"
    }
  ]
}
