{
  "info": {
    "_postman_id": "7a5a426f-0b72-429a-ba79-36a56c612461",
    "name": "Netdata agent nodes API",
    "description": "Real-time performance and health monitoring.\n\n## API Versions\n\nNetdata provides three API versions:\n- **v1**: The original API, focused on single-node operations\n- **v2**: Multi-node API with advanced grouping and aggregation capabilities\n- **v3**: The latest API version that combines v1 and v2 endpoints and may include additional features\n\n### v3 API Endpoints\n\nThe v3 API provides the current, actively maintained endpoints:\n- `/api/v3/data` - Multi-dimensional data queries\n- `/api/v3/weights` - Metric scoring/correlation\n- `/api/v3/contexts` - Context metadata\n- `/api/v3/nodes` - Node information\n- `/api/v3/q` - Full-text search\n- `/api/v3/alerts` - Alert information\n- `/api/v3/alert_transitions` - Alert state transitions\n- `/api/v3/alert_config` - Alert configuration\n- `/api/v3/functions` - Available functions\n- `/api/v3/function` - Execute functions\n- `/api/v3/info` - Agent information\n- `/api/v3/node_instances` - Node instance information\n- `/api/v3/stream_path` - Streaming topology\n- `/api/v3/versions` - Version information\n- `/api/v3/badge.svg` - Dynamic badges\n- `/api/v3/allmetrics` - Export metrics\n- `/api/v3/context` - Single context info\n- `/api/v3/variable` - Variable information\n- `/api/v3/config` - Dynamic configuration\n- `/api/v3/settings` - Agent settings\n- `/api/v3/me` - Current user information\n- `/api/v3/claim` - Agent claiming\n- Additional management and streaming endpoints\n\n**Note:** V1 and V2 APIs are deprecated and maintained for backwards compatibility only. New integrations should use V3 exclusively.\n\n\nContact Support:\n Name: Netdata Agent API\n Email: info@netdata.cloud",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "createdAt": "2026-07-28T02:17:37.000Z",
    "updatedAt": "2026-07-28T02:17:37.000Z",
    "lastUpdatedBy": "35240",
    "uid": "35240-7a5a426f-0b72-429a-ba79-36a56c612461"
  },
  "item": [
    {
      "name": "api",
      "item": [
        {
          "name": "v2",
          "item": [
            {
              "name": "nodes",
              "item": [
                {
                  "name": "Nodes Info v2",
                  "id": "2198a59e-6cff-444d-9b5f-6426febbbb18",
                  "protocolProfileBehavior": {
                    "disableBodyPruning": true
                  },
                  "request": {
                    "auth": {
                      "type": "noauth"
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/api/v2/nodes?scope_nodes=*&scope_contexts=*&nodes=*&contexts=*",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "api",
                        "v2",
                        "nodes"
                      ],
                      "query": [
                        {
                          "description": "A simple pattern limiting the nodes scope of the query. The scope controls both data and metadata response. The simple pattern is checked against the nodes' machine guid, node id and hostname. The default nodes scope is all nodes for which this Agent has data for. Usually the nodes scope is used to slice the entire dashboard (e.g. the Global Nodes Selector at the Netdata Cloud overview dashboard). Both positive and negative simple pattern expressions are supported.\n",
                          "key": "scope_nodes",
                          "value": "*"
                        },
                        {
                          "description": "A simple pattern limiting the contexts scope of the query. The scope controls both data and metadata response. The default contexts scope is all contexts for which this Agent has data for. Usually the contexts scope is used to slice data on the dashboard (e.g. each context based chart has its own contexts scope, limiting the chart to all the instances of the selected context). Both positive and negative simple pattern expressions are supported.\n",
                          "key": "scope_contexts",
                          "value": "*"
                        },
                        {
                          "description": "A simple pattern matching the nodes to be queried. This only controls the data response, not the metadata. The simple pattern is checked against the nodes' machine guid, node id, hostname. The default nodes selector is all the nodes matched by the nodes scope. Both positive and negative simple pattern expressions are supported.\n",
                          "key": "nodes",
                          "value": "*"
                        },
                        {
                          "description": "A simple pattern matching the contexts to be queried. This only controls the data response, not the metadata. Both positive and negative simple pattern expressions are supported.\n",
                          "key": "contexts",
                          "value": "*"
                        }
                      ]
                    },
                    "description": "Get a list of all nodes hosted by this Netdata Agent.\n\n**Security & Access Control:**\n- \ud83d\udcca **Public Data API** - Bearer token optional, IP-based ACL restrictions apply\n- **Default Access:** Public (no authentication required)\n- **Bearer Protection:** When enabled via `/api/v3/bearer_protection`, requires bearer token\n- **IP Restrictions:** Subject to `allow dashboard from` in netdata.conf\n- **Access Methods:** Direct HTTP/HTTPS, Netdata Cloud, external tools\n"
                  },
                  "response": [
                    {
                      "id": "4eaaca52-f016-4d87-bae7-93c3790fc49d",
                      "name": "OK",
                      "originalRequest": {
                        "method": "GET",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          }
                        ],
                        "url": {
                          "raw": "{{baseUrl}}/api/v2/nodes?scope_nodes=*&scope_contexts=*&nodes=*&contexts=*",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v2",
                            "nodes"
                          ],
                          "query": [
                            {
                              "description": "A simple pattern limiting the nodes scope of the query. The scope controls both data and metadata response. The simple pattern is checked against the nodes' machine guid, node id and hostname. The default nodes scope is all nodes for which this Agent has data for. Usually the nodes scope is used to slice the entire dashboard (e.g. the Global Nodes Selector at the Netdata Cloud overview dashboard). Both positive and negative simple pattern expressions are supported.\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern limiting the contexts scope of the query. The scope controls both data and metadata response. The default contexts scope is all contexts for which this Agent has data for. Usually the contexts scope is used to slice data on the dashboard (e.g. each context based chart has its own contexts scope, limiting the chart to all the instances of the selected context). Both positive and negative simple pattern expressions are supported.\n",
                              "key": "scope_contexts",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern matching the nodes to be queried. This only controls the data response, not the metadata. The simple pattern is checked against the nodes' machine guid, node id, hostname. The default nodes selector is all the nodes matched by the nodes scope. Both positive and negative simple pattern expressions are supported.\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern matching the contexts to be queried. This only controls the data response, not the metadata. Both positive and negative simple pattern expressions are supported.\n",
                              "key": "contexts",
                              "value": "*"
                            }
                          ]
                        }
                      },
                      "status": "OK",
                      "code": 200,
                      "_postman_previewlanguage": "json",
                      "header": [
                        {
                          "key": "Content-Type",
                          "value": "application/json"
                        }
                      ],
                      "cookie": [],
                      "responseTime": null,
                      "body": "{\n  \"api\": \"<integer>\",\n  \"agents\": [\n    {\n      \"mg\": \"<uuid>\",\n      \"nd\": \"<uuid>\",\n      \"nm\": \"<string>\",\n      \"ai\": \"<integer>\",\n      \"now\": \"<integer>\"\n    },\n    {\n      \"mg\": \"<uuid>\",\n      \"nd\": \"<uuid>\",\n      \"nm\": \"<string>\",\n      \"ai\": \"<integer>\",\n      \"now\": \"<integer>\"\n    }\n  ],\n  \"versions\": {\n    \"nodes_hard_hash\": \"<integer>\",\n    \"contexts_hard_hash\": \"<integer>\",\n    \"contexts_soft_hash\": \"<integer>\",\n    \"alerts_hard_hash\": \"<integer>\",\n    \"alerts_soft_hash\": \"<integer>\"\n  },\n  \"nodes\": [\n    {\n      \"ni\": \"<integer>\",\n      \"st\": {\n        \"ai\": \"<integer>\",\n        \"code\": \"<integer>\",\n        \"msg\": \"<string>\",\n        \"ms\": \"<number>\"\n      },\n      \"mg\": \"<string>\",\n      \"nd\": \"<string>\",\n      \"nm\": \"<string>\",\n      \"version\": \"<string>\",\n      \"hops\": \"<integer>\",\n      \"state\": \"offline\"\n    },\n    {\n      \"ni\": \"<integer>\",\n      \"st\": {\n        \"ai\": \"<integer>\",\n        \"code\": \"<integer>\",\n        \"msg\": \"<string>\",\n        \"ms\": \"<number>\"\n      },\n      \"mg\": \"<string>\",\n      \"nd\": \"<string>\",\n      \"nm\": \"<string>\",\n      \"version\": \"<string>\",\n      \"hops\": \"<integer>\",\n      \"state\": \"reachable\"\n    }\n  ]\n}",
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-4eaaca52-f016-4d87-bae7-93c3790fc49d"
                    }
                  ],
                  "createdAt": "2026-07-28T02:17:38.000Z",
                  "updatedAt": "2026-07-28T02:17:38.000Z",
                  "uid": "35240-2198a59e-6cff-444d-9b5f-6426febbbb18"
                }
              ],
              "id": "6e18814e-b6d1-4f0b-ae80-9972185a4039",
              "createdAt": "2026-07-28T02:17:38.000Z",
              "updatedAt": "2026-07-28T02:17:38.000Z",
              "uid": "35240-6e18814e-b6d1-4f0b-ae80-9972185a4039"
            },
            {
              "name": "node_instances",
              "item": [
                {
                  "name": "OBSOLETE: Get node instances hierarchy (use /api/v3/node_instances instead)",
                  "id": "cf2c1571-44ab-4b50-839b-59799279d5ba",
                  "protocolProfileBehavior": {
                    "disableBodyPruning": true
                  },
                  "request": {
                    "auth": {
                      "type": "noauth"
                    },
                    "method": "GET",
                    "header": [],
                    "url": {
                      "raw": "{{baseUrl}}/api/v2/node_instances?scope_nodes=*&nodes=*&options=seconds&options=jsonwrap&after=-600&before=0&timeout=0&cardinality_limit=10000",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "api",
                        "v2",
                        "node_instances"
                      ],
                      "query": [
                        {
                          "description": "A simple pattern limiting the nodes scope of the query. The scope controls both data and metadata response. The simple pattern is checked against the nodes' machine guid, node id and hostname. The default nodes scope is all nodes for which this Agent has data for. Usually the nodes scope is used to slice the entire dashboard (e.g. the Global Nodes Selector at the Netdata Cloud overview dashboard). Both positive and negative simple pattern expressions are supported.\n",
                          "key": "scope_nodes",
                          "value": "*"
                        },
                        {
                          "description": "A simple pattern matching the nodes to be queried. This only controls the data response, not the metadata. The simple pattern is checked against the nodes' machine guid, node id, hostname. The default nodes selector is all the nodes matched by the nodes scope. Both positive and negative simple pattern expressions are supported.\n",
                          "key": "nodes",
                          "value": "*"
                        },
                        {
                          "description": "Options that affect data generation.\n* `jsonwrap` - Wrap the output in a JSON object with metadata about the query.\n* `raw` - change the output so that it is aggregatable across multiple such queries. Supported by `/api/v2` data queries and `json2` format.\n* `minify` - Remove unnecessary spaces and newlines from the output.\n* `debug` - Provide additional information in `jsonwrap` output to help tracing issues.\n* `nonzero` - Do not return dimensions that all their values are zero, to improve the visual appearance of charts. They will still be returned if all the dimensions are entirely zero.\n* `null2zero` - Replace `null` values with `0`.\n* `absolute` or `abs` - Traditionally Netdata returns select dimensions negative to improve visual appearance. This option turns this feature off.\n* `display-absolute` - Only used by badges, to do color calculation using the signed value, but render the value without a sign.\n* `flip` or `reversed` - Order the timestamps array in reverse order (newest to oldest).\n* `min2max` - When flattening multi-dimensional data into a single metric format, use `max - min` instead of `sum`. This is EOL - use `/api/v2` to control aggregation across dimensions.\n* `percentage` - Convert all values into a percentage vs the row total. When enabled, Netdata will query all dimensions, even the ones that have not been selected or are hidden, to find the row total, in order to calculate the percentage of each dimension selected.\n* `seconds` - Output timestamps in seconds instead of dates.\n* `milliseconds` or `ms` - Output timestamps in milliseconds instead of dates.\n* `unaligned` - by default queries are aligned to the the view, so that as time passes past data returned do not change. When a data query will not be used for visualization, `unaligned` can be given to avoid aligning the query time-frame for visual precision.\n* `match-ids`, `match-names`. By default filters match both IDs and names when they are available. Setting either of the two options will disable the other.\n* `anomaly-bit` - query the anomaly information instead of metric values. This is EOL, use `/api/v2` and `json2` format which always returns this information and many more.\n* `jw-anomaly-rates` - return anomaly rates as a separate result set in the same `json` format response. This is EOL, use `/api/v2` and `json2` format which always returns information and many more. \n* `details` - `/api/v2/data` returns in `jsonwrap` the full tree of dimensions that have been matched by the query.\n* `group-by-labels` - `/api/v2/data` returns in `jsonwrap` flattened labels per output dimension. These are used to identify the instances that have been aggregated into each dimension, making it possible to provide a map, like Netdata does for Kubernetes.\n* `natural-points` - return timestamps as found in the database. The result is again fixed-step, but the query engine attempts to align them with the timestamps found in the database.\n* `virtual-points` - return timestamps independent of the database alignment. This is needed aggregating data across multiple Netdata Agents, to ensure that their outputs do not need to be interpolated to be merged.\n* `selected-tier` - use data exclusively from the selected tier given with the `tier` parameter. This option is set automatically when the `tier` parameter is set.\n* `all-dimensions` - In `/api/v1` `jsonwrap` include metadata for all candidate metrics examined. In `/api/v2` this is standard behavior and no option is needed.\n* `label-quotes` - In `csv` output format, enclose each header label in quotes.\n* `objectrows` - Each row of value should be an object, not an array (only for `json` format).\n* `google_json` - Comply with google JSON/JSONP specs (only for `json` format).\n* `minimal-stats` or `minimal` - Reduce the amount of statistics returned in `jsonwrap` format to save bandwidth.\n* `long-json-keys` or `long-keys` - Use descriptive key names in JSON output instead of abbreviated ones.\n* `mcp-info` - Include additional metadata useful for the Model Context Protocol (MCP) integration.\n* `rfc3339` - Return timestamps in RFC3339 format (e.g., \"2023-01-01T00:00:00Z\") instead of Unix timestamps.\n",
                          "key": "options",
                          "value": "seconds"
                        },
                        {
                          "description": "Options that affect data generation.\n* `jsonwrap` - Wrap the output in a JSON object with metadata about the query.\n* `raw` - change the output so that it is aggregatable across multiple such queries. Supported by `/api/v2` data queries and `json2` format.\n* `minify` - Remove unnecessary spaces and newlines from the output.\n* `debug` - Provide additional information in `jsonwrap` output to help tracing issues.\n* `nonzero` - Do not return dimensions that all their values are zero, to improve the visual appearance of charts. They will still be returned if all the dimensions are entirely zero.\n* `null2zero` - Replace `null` values with `0`.\n* `absolute` or `abs` - Traditionally Netdata returns select dimensions negative to improve visual appearance. This option turns this feature off.\n* `display-absolute` - Only used by badges, to do color calculation using the signed value, but render the value without a sign.\n* `flip` or `reversed` - Order the timestamps array in reverse order (newest to oldest).\n* `min2max` - When flattening multi-dimensional data into a single metric format, use `max - min` instead of `sum`. This is EOL - use `/api/v2` to control aggregation across dimensions.\n* `percentage` - Convert all values into a percentage vs the row total. When enabled, Netdata will query all dimensions, even the ones that have not been selected or are hidden, to find the row total, in order to calculate the percentage of each dimension selected.\n* `seconds` - Output timestamps in seconds instead of dates.\n* `milliseconds` or `ms` - Output timestamps in milliseconds instead of dates.\n* `unaligned` - by default queries are aligned to the the view, so that as time passes past data returned do not change. When a data query will not be used for visualization, `unaligned` can be given to avoid aligning the query time-frame for visual precision.\n* `match-ids`, `match-names`. By default filters match both IDs and names when they are available. Setting either of the two options will disable the other.\n* `anomaly-bit` - query the anomaly information instead of metric values. This is EOL, use `/api/v2` and `json2` format which always returns this information and many more.\n* `jw-anomaly-rates` - return anomaly rates as a separate result set in the same `json` format response. This is EOL, use `/api/v2` and `json2` format which always returns information and many more. \n* `details` - `/api/v2/data` returns in `jsonwrap` the full tree of dimensions that have been matched by the query.\n* `group-by-labels` - `/api/v2/data` returns in `jsonwrap` flattened labels per output dimension. These are used to identify the instances that have been aggregated into each dimension, making it possible to provide a map, like Netdata does for Kubernetes.\n* `natural-points` - return timestamps as found in the database. The result is again fixed-step, but the query engine attempts to align them with the timestamps found in the database.\n* `virtual-points` - return timestamps independent of the database alignment. This is needed aggregating data across multiple Netdata Agents, to ensure that their outputs do not need to be interpolated to be merged.\n* `selected-tier` - use data exclusively from the selected tier given with the `tier` parameter. This option is set automatically when the `tier` parameter is set.\n* `all-dimensions` - In `/api/v1` `jsonwrap` include metadata for all candidate metrics examined. In `/api/v2` this is standard behavior and no option is needed.\n* `label-quotes` - In `csv` output format, enclose each header label in quotes.\n* `objectrows` - Each row of value should be an object, not an array (only for `json` format).\n* `google_json` - Comply with google JSON/JSONP specs (only for `json` format).\n* `minimal-stats` or `minimal` - Reduce the amount of statistics returned in `jsonwrap` format to save bandwidth.\n* `long-json-keys` or `long-keys` - Use descriptive key names in JSON output instead of abbreviated ones.\n* `mcp-info` - Include additional metadata useful for the Model Context Protocol (MCP) integration.\n* `rfc3339` - Return timestamps in RFC3339 format (e.g., \"2023-01-01T00:00:00Z\") instead of Unix timestamps.\n",
                          "key": "options",
                          "value": "jsonwrap"
                        },
                        {
                          "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                          "key": "after",
                          "value": "-600"
                        },
                        {
                          "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                          "key": "before",
                          "value": "0"
                        },
                        {
                          "description": "Specify a timeout value in milliseconds after which the Agent will abort the query and return a 503 error. A value of 0 indicates no timeout.\n",
                          "key": "timeout",
                          "value": "0"
                        },
                        {
                          "description": "Limits the number of unique items (contexts, instances, dimensions) returned in the query result. This is useful for preventing excessive memory usage and response sizes when queries match a large number of metrics. The query engine will return the most relevant items up to this limit.\n",
                          "key": "cardinality_limit",
                          "value": "10000"
                        }
                      ]
                    },
                    "description": "**\u26a0\ufe0f OBSOLETE API - Will be removed in future versions**\n\nThis endpoint is deprecated. Use `/api/v3/node_instances` instead, which provides the same functionality.\n\n**Migration:** Replace `/api/v2/node_instances` with `/api/v3/node_instances` in all API calls.\n\nReturns hierarchical organization of chart instances across nodes, showing relationships between\nparent and child agents and their monitored components.\n\n**Security & Access Control:**\n- \ud83d\udcca **Public Data API** - Bearer token optional, IP-based ACL restrictions apply\n- **Default Access:** Public (no authentication required)\n- **Bearer Protection:** When enabled via `/api/v3/bearer_protection`, requires bearer token\n- **IP Restrictions:** Subject to `allow dashboard from` in netdata.conf\n- **Access Methods:** Direct HTTP/HTTPS, Netdata Cloud, external tools\n"
                  },
                  "response": [
                    {
                      "id": "09e56906-fce6-4f3a-b328-9fa507450f1a",
                      "name": "Node instances successfully retrieved",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v2/node_instances?scope_nodes=*&nodes=*&options=jsonwrap&after=-600&before=0&timeout=0&cardinality_limit=10000",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v2",
                            "node_instances"
                          ],
                          "query": [
                            {
                              "description": "A simple pattern limiting the nodes scope of the query. The scope controls both data and metadata response. The simple pattern is checked against the nodes' machine guid, node id and hostname. The default nodes scope is all nodes for which this Agent has data for. Usually the nodes scope is used to slice the entire dashboard (e.g. the Global Nodes Selector at the Netdata Cloud overview dashboard). Both positive and negative simple pattern expressions are supported.\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern matching the nodes to be queried. This only controls the data response, not the metadata. The simple pattern is checked against the nodes' machine guid, node id, hostname. The default nodes selector is all the nodes matched by the nodes scope. Both positive and negative simple pattern expressions are supported.\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "Options that affect data generation.\n* `jsonwrap` - Wrap the output in a JSON object with metadata about the query.\n* `raw` - change the output so that it is aggregatable across multiple such queries. Supported by `/api/v2` data queries and `json2` format.\n* `minify` - Remove unnecessary spaces and newlines from the output.\n* `debug` - Provide additional information in `jsonwrap` output to help tracing issues.\n* `nonzero` - Do not return dimensions that all their values are zero, to improve the visual appearance of charts. They will still be returned if all the dimensions are entirely zero.\n* `null2zero` - Replace `null` values with `0`.\n* `absolute` or `abs` - Traditionally Netdata returns select dimensions negative to improve visual appearance. This option turns this feature off.\n* `display-absolute` - Only used by badges, to do color calculation using the signed value, but render the value without a sign.\n* `flip` or `reversed` - Order the timestamps array in reverse order (newest to oldest).\n* `min2max` - When flattening multi-dimensional data into a single metric format, use `max - min` instead of `sum`. This is EOL - use `/api/v2` to control aggregation across dimensions.\n* `percentage` - Convert all values into a percentage vs the row total. When enabled, Netdata will query all dimensions, even the ones that have not been selected or are hidden, to find the row total, in order to calculate the percentage of each dimension selected.\n* `seconds` - Output timestamps in seconds instead of dates.\n* `milliseconds` or `ms` - Output timestamps in milliseconds instead of dates.\n* `unaligned` - by default queries are aligned to the the view, so that as time passes past data returned do not change. When a data query will not be used for visualization, `unaligned` can be given to avoid aligning the query time-frame for visual precision.\n* `match-ids`, `match-names`. By default filters match both IDs and names when they are available. Setting either of the two options will disable the other.\n* `anomaly-bit` - query the anomaly information instead of metric values. This is EOL, use `/api/v2` and `json2` format which always returns this information and many more.\n* `jw-anomaly-rates` - return anomaly rates as a separate result set in the same `json` format response. This is EOL, use `/api/v2` and `json2` format which always returns information and many more. \n* `details` - `/api/v2/data` returns in `jsonwrap` the full tree of dimensions that have been matched by the query.\n* `group-by-labels` - `/api/v2/data` returns in `jsonwrap` flattened labels per output dimension. These are used to identify the instances that have been aggregated into each dimension, making it possible to provide a map, like Netdata does for Kubernetes.\n* `natural-points` - return timestamps as found in the database. The result is again fixed-step, but the query engine attempts to align them with the timestamps found in the database.\n* `virtual-points` - return timestamps independent of the database alignment. This is needed aggregating data across multiple Netdata Agents, to ensure that their outputs do not need to be interpolated to be merged.\n* `selected-tier` - use data exclusively from the selected tier given with the `tier` parameter. This option is set automatically when the `tier` parameter is set.\n* `all-dimensions` - In `/api/v1` `jsonwrap` include metadata for all candidate metrics examined. In `/api/v2` this is standard behavior and no option is needed.\n* `label-quotes` - In `csv` output format, enclose each header label in quotes.\n* `objectrows` - Each row of value should be an object, not an array (only for `json` format).\n* `google_json` - Comply with google JSON/JSONP specs (only for `json` format).\n* `minimal-stats` or `minimal` - Reduce the amount of statistics returned in `jsonwrap` format to save bandwidth.\n* `long-json-keys` or `long-keys` - Use descriptive key names in JSON output instead of abbreviated ones.\n* `mcp-info` - Include additional metadata useful for the Model Context Protocol (MCP) integration.\n* `rfc3339` - Return timestamps in RFC3339 format (e.g., \"2023-01-01T00:00:00Z\") instead of Unix timestamps.\n",
                              "key": "options",
                              "value": "jsonwrap"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Specify a timeout value in milliseconds after which the Agent will abort the query and return a 503 error. A value of 0 indicates no timeout.\n",
                              "key": "timeout",
                              "value": "0"
                            },
                            {
                              "description": "Limits the number of unique items (contexts, instances, dimensions) returned in the query result. This is useful for preventing excessive memory usage and response sizes when queries match a large number of metrics. The query engine will return the most relevant items up to this limit.\n",
                              "key": "cardinality_limit",
                              "value": "10000"
                            }
                          ]
                        }
                      },
                      "status": "OK",
                      "code": 200,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-09e56906-fce6-4f3a-b328-9fa507450f1a"
                    },
                    {
                      "id": "901f01a5-1ba3-4a5b-9f66-84819c275fa3",
                      "name": "Invalid parameters",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v2/node_instances?scope_nodes=*&nodes=*&options=jsonwrap&after=-600&before=0&timeout=0&cardinality_limit=10000",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v2",
                            "node_instances"
                          ],
                          "query": [
                            {
                              "description": "A simple pattern limiting the nodes scope of the query. The scope controls both data and metadata response. The simple pattern is checked against the nodes' machine guid, node id and hostname. The default nodes scope is all nodes for which this Agent has data for. Usually the nodes scope is used to slice the entire dashboard (e.g. the Global Nodes Selector at the Netdata Cloud overview dashboard). Both positive and negative simple pattern expressions are supported.\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern matching the nodes to be queried. This only controls the data response, not the metadata. The simple pattern is checked against the nodes' machine guid, node id, hostname. The default nodes selector is all the nodes matched by the nodes scope. Both positive and negative simple pattern expressions are supported.\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "Options that affect data generation.\n* `jsonwrap` - Wrap the output in a JSON object with metadata about the query.\n* `raw` - change the output so that it is aggregatable across multiple such queries. Supported by `/api/v2` data queries and `json2` format.\n* `minify` - Remove unnecessary spaces and newlines from the output.\n* `debug` - Provide additional information in `jsonwrap` output to help tracing issues.\n* `nonzero` - Do not return dimensions that all their values are zero, to improve the visual appearance of charts. They will still be returned if all the dimensions are entirely zero.\n* `null2zero` - Replace `null` values with `0`.\n* `absolute` or `abs` - Traditionally Netdata returns select dimensions negative to improve visual appearance. This option turns this feature off.\n* `display-absolute` - Only used by badges, to do color calculation using the signed value, but render the value without a sign.\n* `flip` or `reversed` - Order the timestamps array in reverse order (newest to oldest).\n* `min2max` - When flattening multi-dimensional data into a single metric format, use `max - min` instead of `sum`. This is EOL - use `/api/v2` to control aggregation across dimensions.\n* `percentage` - Convert all values into a percentage vs the row total. When enabled, Netdata will query all dimensions, even the ones that have not been selected or are hidden, to find the row total, in order to calculate the percentage of each dimension selected.\n* `seconds` - Output timestamps in seconds instead of dates.\n* `milliseconds` or `ms` - Output timestamps in milliseconds instead of dates.\n* `unaligned` - by default queries are aligned to the the view, so that as time passes past data returned do not change. When a data query will not be used for visualization, `unaligned` can be given to avoid aligning the query time-frame for visual precision.\n* `match-ids`, `match-names`. By default filters match both IDs and names when they are available. Setting either of the two options will disable the other.\n* `anomaly-bit` - query the anomaly information instead of metric values. This is EOL, use `/api/v2` and `json2` format which always returns this information and many more.\n* `jw-anomaly-rates` - return anomaly rates as a separate result set in the same `json` format response. This is EOL, use `/api/v2` and `json2` format which always returns information and many more. \n* `details` - `/api/v2/data` returns in `jsonwrap` the full tree of dimensions that have been matched by the query.\n* `group-by-labels` - `/api/v2/data` returns in `jsonwrap` flattened labels per output dimension. These are used to identify the instances that have been aggregated into each dimension, making it possible to provide a map, like Netdata does for Kubernetes.\n* `natural-points` - return timestamps as found in the database. The result is again fixed-step, but the query engine attempts to align them with the timestamps found in the database.\n* `virtual-points` - return timestamps independent of the database alignment. This is needed aggregating data across multiple Netdata Agents, to ensure that their outputs do not need to be interpolated to be merged.\n* `selected-tier` - use data exclusively from the selected tier given with the `tier` parameter. This option is set automatically when the `tier` parameter is set.\n* `all-dimensions` - In `/api/v1` `jsonwrap` include metadata for all candidate metrics examined. In `/api/v2` this is standard behavior and no option is needed.\n* `label-quotes` - In `csv` output format, enclose each header label in quotes.\n* `objectrows` - Each row of value should be an object, not an array (only for `json` format).\n* `google_json` - Comply with google JSON/JSONP specs (only for `json` format).\n* `minimal-stats` or `minimal` - Reduce the amount of statistics returned in `jsonwrap` format to save bandwidth.\n* `long-json-keys` or `long-keys` - Use descriptive key names in JSON output instead of abbreviated ones.\n* `mcp-info` - Include additional metadata useful for the Model Context Protocol (MCP) integration.\n* `rfc3339` - Return timestamps in RFC3339 format (e.g., \"2023-01-01T00:00:00Z\") instead of Unix timestamps.\n",
                              "key": "options",
                              "value": "jsonwrap"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Specify a timeout value in milliseconds after which the Agent will abort the query and return a 503 error. A value of 0 indicates no timeout.\n",
                              "key": "timeout",
                              "value": "0"
                            },
                            {
                              "description": "Limits the number of unique items (contexts, instances, dimensions) returned in the query result. This is useful for preventing excessive memory usage and response sizes when queries match a large number of metrics. The query engine will return the most relevant items up to this limit.\n",
                              "key": "cardinality_limit",
                              "value": "10000"
                            }
                          ]
                        }
                      },
                      "status": "Bad Request",
                      "code": 400,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-901f01a5-1ba3-4a5b-9f66-84819c275fa3"
                    }
                  ],
                  "createdAt": "2026-07-28T02:17:38.000Z",
                  "updatedAt": "2026-07-28T02:17:38.000Z",
                  "uid": "35240-cf2c1571-44ab-4b50-839b-59799279d5ba"
                }
              ],
              "id": "33cad07a-e37e-42b8-b1bd-6309a124850c",
              "createdAt": "2026-07-28T02:17:38.000Z",
              "updatedAt": "2026-07-28T02:17:38.000Z",
              "uid": "35240-33cad07a-e37e-42b8-b1bd-6309a124850c"
            }
          ],
          "id": "ebdbdeac-c437-40f2-8f0e-743fb69a32ae",
          "createdAt": "2026-07-28T02:17:38.000Z",
          "updatedAt": "2026-07-28T02:17:38.000Z",
          "uid": "35240-ebdbdeac-c437-40f2-8f0e-743fb69a32ae"
        },
        {
          "name": "v3",
          "item": [
            {
              "name": "nodes",
              "item": [
                {
                  "name": "Nodes Info v3",
                  "id": "5c5f74ee-e459-4b2e-8378-3e6a4adf8466",
                  "protocolProfileBehavior": {
                    "disableBodyPruning": true
                  },
                  "request": {
                    "auth": {
                      "type": "noauth"
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/api/v3/nodes?scope_nodes=*&scope_contexts=*&nodes=*&contexts=*",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "api",
                        "v3",
                        "nodes"
                      ],
                      "query": [
                        {
                          "description": "A simple pattern limiting the nodes scope of the query. The scope controls both data and metadata response. The simple pattern is checked against the nodes' machine guid, node id and hostname. The default nodes scope is all nodes for which this Agent has data for. Usually the nodes scope is used to slice the entire dashboard (e.g. the Global Nodes Selector at the Netdata Cloud overview dashboard). Both positive and negative simple pattern expressions are supported.\n",
                          "key": "scope_nodes",
                          "value": "*"
                        },
                        {
                          "description": "A simple pattern limiting the contexts scope of the query. The scope controls both data and metadata response. The default contexts scope is all contexts for which this Agent has data for. Usually the contexts scope is used to slice data on the dashboard (e.g. each context based chart has its own contexts scope, limiting the chart to all the instances of the selected context). Both positive and negative simple pattern expressions are supported.\n",
                          "key": "scope_contexts",
                          "value": "*"
                        },
                        {
                          "description": "A simple pattern matching the nodes to be queried. This only controls the data response, not the metadata. The simple pattern is checked against the nodes' machine guid, node id, hostname. The default nodes selector is all the nodes matched by the nodes scope. Both positive and negative simple pattern expressions are supported.\n",
                          "key": "nodes",
                          "value": "*"
                        },
                        {
                          "description": "A simple pattern matching the contexts to be queried. This only controls the data response, not the metadata. Both positive and negative simple pattern expressions are supported.\n",
                          "key": "contexts",
                          "value": "*"
                        }
                      ]
                    },
                    "description": "Get a list of all nodes hosted by this Netdata Agent.\n\n**Security & Access Control:**\n- \ud83d\udcca **Public Data API** - Bearer token optional, IP-based ACL restrictions apply\n- **Default Access:** Public (no authentication required)\n- **Bearer Protection:** When enabled via `/api/v3/bearer_protection`, requires bearer token\n- **IP Restrictions:** Subject to `allow dashboard from` in netdata.conf\n- **Access Methods:** Direct HTTP/HTTPS, Netdata Cloud, external tools\n"
                  },
                  "response": [
                    {
                      "id": "b6f7b376-59e7-44fa-bf6f-85026f4673b7",
                      "name": "OK",
                      "originalRequest": {
                        "method": "GET",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          }
                        ],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/nodes?scope_nodes=*&scope_contexts=*&nodes=*&contexts=*",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "nodes"
                          ],
                          "query": [
                            {
                              "description": "A simple pattern limiting the nodes scope of the query. The scope controls both data and metadata response. The simple pattern is checked against the nodes' machine guid, node id and hostname. The default nodes scope is all nodes for which this Agent has data for. Usually the nodes scope is used to slice the entire dashboard (e.g. the Global Nodes Selector at the Netdata Cloud overview dashboard). Both positive and negative simple pattern expressions are supported.\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern limiting the contexts scope of the query. The scope controls both data and metadata response. The default contexts scope is all contexts for which this Agent has data for. Usually the contexts scope is used to slice data on the dashboard (e.g. each context based chart has its own contexts scope, limiting the chart to all the instances of the selected context). Both positive and negative simple pattern expressions are supported.\n",
                              "key": "scope_contexts",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern matching the nodes to be queried. This only controls the data response, not the metadata. The simple pattern is checked against the nodes' machine guid, node id, hostname. The default nodes selector is all the nodes matched by the nodes scope. Both positive and negative simple pattern expressions are supported.\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "A simple pattern matching the contexts to be queried. This only controls the data response, not the metadata. Both positive and negative simple pattern expressions are supported.\n",
                              "key": "contexts",
                              "value": "*"
                            }
                          ]
                        }
                      },
                      "status": "OK",
                      "code": 200,
                      "_postman_previewlanguage": "json",
                      "header": [
                        {
                          "key": "Content-Type",
                          "value": "application/json"
                        }
                      ],
                      "cookie": [],
                      "responseTime": null,
                      "body": "{\n  \"api\": \"<integer>\",\n  \"agents\": [\n    {\n      \"mg\": \"<uuid>\",\n      \"nd\": \"<uuid>\",\n      \"nm\": \"<string>\",\n      \"ai\": \"<integer>\",\n      \"now\": \"<integer>\"\n    },\n    {\n      \"mg\": \"<uuid>\",\n      \"nd\": \"<uuid>\",\n      \"nm\": \"<string>\",\n      \"ai\": \"<integer>\",\n      \"now\": \"<integer>\"\n    }\n  ],\n  \"versions\": {\n    \"nodes_hard_hash\": \"<integer>\",\n    \"contexts_hard_hash\": \"<integer>\",\n    \"contexts_soft_hash\": \"<integer>\",\n    \"alerts_hard_hash\": \"<integer>\",\n    \"alerts_soft_hash\": \"<integer>\"\n  },\n  \"nodes\": [\n    {\n      \"ni\": \"<integer>\",\n      \"st\": {\n        \"ai\": \"<integer>\",\n        \"code\": \"<integer>\",\n        \"msg\": \"<string>\",\n        \"ms\": \"<number>\"\n      },\n      \"mg\": \"<string>\",\n      \"nd\": \"<string>\",\n      \"nm\": \"<string>\",\n      \"version\": \"<string>\",\n      \"hops\": \"<integer>\",\n      \"state\": \"stale\"\n    },\n    {\n      \"ni\": \"<integer>\",\n      \"st\": {\n        \"ai\": \"<integer>\",\n        \"code\": \"<integer>\",\n        \"msg\": \"<string>\",\n        \"ms\": \"<number>\"\n      },\n      \"mg\": \"<string>\",\n      \"nd\": \"<string>\",\n      \"nm\": \"<string>\",\n      \"version\": \"<string>\",\n      \"hops\": \"<integer>\",\n      \"state\": \"offline\"\n    }\n  ]\n}",
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-b6f7b376-59e7-44fa-bf6f-85026f4673b7"
                    }
                  ],
                  "createdAt": "2026-07-28T02:17:38.000Z",
                  "updatedAt": "2026-07-28T02:17:38.000Z",
                  "uid": "35240-5c5f74ee-e459-4b2e-8378-3e6a4adf8466"
                }
              ],
              "id": "5b5158de-cc35-4dad-9d79-7ca5abbb3c7b",
              "createdAt": "2026-07-28T02:17:38.000Z",
              "updatedAt": "2026-07-28T02:17:38.000Z",
              "uid": "35240-5b5158de-cc35-4dad-9d79-7ca5abbb3c7b"
            },
            {
              "name": "info",
              "item": [
                {
                  "name": "Retrieve detailed Netdata agent information across all nodes",
                  "id": "cefa82dc-c8ce-4d18-a9cf-53f007c39730",
                  "protocolProfileBehavior": {
                    "disableBodyPruning": true
                  },
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/api/v3/info?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "api",
                        "v3",
                        "info"
                      ],
                      "query": [
                        {
                          "description": "Filter to specific nodes using simple pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated list for multiple patterns\n- `!` prefix to exclude\n- Combine with: `web* !web-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=prod-*` - All production nodes\n- `scope_nodes=* !test*` - All except test nodes\n\n**Use Cases:**\n- Focus on specific infrastructure tiers\n- Exclude development/test environments\n- Group by naming conventions\n\nWhen not specified, returns info for all nodes.\n",
                          "key": "scope_nodes",
                          "value": "<string>"
                        },
                        {
                          "description": "Filter to specific nodes by exact names.\n\nUnlike `scope_nodes`, this requires exact node names (no patterns).\n\n**Format:** Comma or pipe-separated list\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-server-01,db-server-01` - Multiple nodes\n- `nodes=web-01|web-02` - Pipe separator\n\n**Best Practice:**\n- Use `nodes` when you know exact names\n- Use `scope_nodes` for pattern-based filtering\n\nWhen not specified, returns info for all nodes matching scope_nodes.\n",
                          "key": "nodes",
                          "value": "<string>"
                        },
                        {
                          "description": "Control the level of detail and what information to include in the response.\n\n**Available Options:**\n- `full` or `all` - Include all available information\n- `labels` - Include host labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include information about deleted/offline nodes\n- `hidden` - Include hidden agents\n\n**Examples:**\n- `options=full` - Complete information\n- `options=labels,uuids` - Labels and identifiers\n- `options=labels|uuids` - Pipe separator also works\n\n**Default Behavior:**\nWhen not specified, returns standard information without deleted/hidden nodes and without excessive detail.\n\n**Use Cases:**\n- Inventory systems need `full` detail\n- Label-based filtering needs `labels`\n- Historical analysis may need `deleted`\n",
                          "key": "options",
                          "value": "<string>"
                        },
                        {
                          "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                          "key": "after",
                          "value": "-600"
                        },
                        {
                          "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                          "key": "before",
                          "value": "0"
                        },
                        {
                          "description": "Maximum time in milliseconds to wait for the query to complete.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:**\n- `timeout=30000` - 30 second timeout\n\nFor agent info queries, timeouts are rarely needed as this is a fast metadata-only operation. However, on very large multi-node setups, you may want to limit query time.\n",
                          "key": "timeout",
                          "value": "<long>"
                        },
                        {
                          "description": "Limit the number of nodes returned.\n\n**Format:** Integer (maximum nodes)\n\n**Default:** No limit\n\n**Example:**\n- `cardinality=100` - Return at most 100 nodes\n\n**Use Cases:**\n- Prevent huge responses in very large infrastructures\n- Get a sample of nodes for testing\n- Dashboard widgets with limited display space\n\nWhen exceeded, response indicates how many nodes were omitted.\n",
                          "key": "cardinality",
                          "value": "<integer>"
                        }
                      ]
                    },
                    "description": "Returns comprehensive information about Netdata agents running across the monitored infrastructure. This endpoint provides detailed metadata about each agent including version information, capabilities, collection status, and system configuration.\n\n**What is Netdata Agent Information?**\nThe `info` endpoint provides detailed metadata about the Netdata monitoring agent itself, including:\n- Agent version and build information\n- System capabilities and features enabled\n- Collection status and health\n- Host configuration and labels\n- Database information (storage, retention)\n- Plugin and collector status\n- Operating system details\n- Hardware information\n\n**Difference from /api/v3/nodes:**\n- **`/api/v3/nodes`:** Returns lightweight node list with basic identification\n- **`/api/v3/info`:** Returns comprehensive agent details with full capabilities and configuration\n\n**Multi-Node Support:**\nWhen queried on a Netdata Parent, this endpoint can return information for:\n- The parent agent itself\n- All child agents (streaming to the parent)\n- Filtered subsets using scope_nodes/nodes parameters\n\n**Use Cases:**\n- **Infrastructure Inventory:** Complete catalog of all Netdata installations\n- **Version Audits:** Find agents that need updates\n- **Capability Discovery:** What features are available on each node\n- **Health Monitoring:** Verify agent collection status\n- **Configuration Management:** Understand how agents are configured\n- **Troubleshooting:** Diagnose agent-specific issues\n- **License/Compliance:** Track Netdata deployments\n\n**Information Categories:**\n\n**1. Agent Identity:**\n- Unique agent ID (machine_guid)\n- Hostname\n- Agent version and commit\n- Build information\n\n**2. System Information:**\n- Operating system and kernel\n- CPU architecture\n- Virtualization platform\n- Container runtime (if applicable)\n\n**3. Database & Storage:**\n- Database mode (dbengine, ram, alloc)\n- Retention period\n- Storage capacity\n- Disk space usage\n\n**4. Features & Capabilities:**\n- ML/anomaly detection status\n- ACLK (cloud connection) status\n- Streaming capabilities\n- Available collectors\n\n**5. Collection Status:**\n- Number of charts collecting\n- Number of dimensions\n- Collection frequency\n- Last collection timestamp\n\n**6. Host Labels:**\n- Custom labels assigned to the host\n- Automatic labels (OS, architecture, etc.)\n- Cloud provider information (if detected)\n\n**Performance Characteristics:**\n- Fast query (primarily metadata lookups)\n- No time-series data processing\n- Results can be cached for reasonable duration\n- Supports filtering by node patterns\n\n**Example Usage:**\n```\n# Get info for all nodes\nGET /api/v3/info\n\n# Get info for specific nodes\nGET /api/v3/info?nodes=web-server-01,db-server-01\n\n# Get info for nodes matching pattern\nGET /api/v3/info?scope_nodes=prod-*\n\n# Include specific options\nGET /api/v3/info?options=full\n```\n\n**Response Format:**\nReturns JSON with agent information grouped by node, including complete details about each agent's capabilities, configuration, and current status.\n\n**Security & Access Control:**\n- \ud83d\udd13 **Always Public API** - This endpoint is always accessible without authentication\n- **No Restrictions:** Not subject to bearer protection or IP-based ACL restrictions\n- **No Authentication:** Cannot be restricted by any configuration\n- **Access:** Available to anyone who can reach the agent's HTTP endpoint\n"
                  },
                  "response": [
                    {
                      "id": "3420952e-ba4b-4cf3-8b0c-31878b57d948",
                      "name": "Success. Returns detailed Netdata agent information.\n\n**Response Structure:**\nThe response is a JSON object containing comprehensive agent information grouped by node.\n\n**Top-Level Structure:**\n- `agents`: Array of agent information objects, one per node\n",
                      "originalRequest": {
                        "method": "GET",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          }
                        ],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/info?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "info"
                          ],
                          "query": [
                            {
                              "description": "Filter to specific nodes using simple pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated list for multiple patterns\n- `!` prefix to exclude\n- Combine with: `web* !web-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=prod-*` - All production nodes\n- `scope_nodes=* !test*` - All except test nodes\n\n**Use Cases:**\n- Focus on specific infrastructure tiers\n- Exclude development/test environments\n- Group by naming conventions\n\nWhen not specified, returns info for all nodes.\n",
                              "key": "scope_nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Filter to specific nodes by exact names.\n\nUnlike `scope_nodes`, this requires exact node names (no patterns).\n\n**Format:** Comma or pipe-separated list\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-server-01,db-server-01` - Multiple nodes\n- `nodes=web-01|web-02` - Pipe separator\n\n**Best Practice:**\n- Use `nodes` when you know exact names\n- Use `scope_nodes` for pattern-based filtering\n\nWhen not specified, returns info for all nodes matching scope_nodes.\n",
                              "key": "nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Control the level of detail and what information to include in the response.\n\n**Available Options:**\n- `full` or `all` - Include all available information\n- `labels` - Include host labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include information about deleted/offline nodes\n- `hidden` - Include hidden agents\n\n**Examples:**\n- `options=full` - Complete information\n- `options=labels,uuids` - Labels and identifiers\n- `options=labels|uuids` - Pipe separator also works\n\n**Default Behavior:**\nWhen not specified, returns standard information without deleted/hidden nodes and without excessive detail.\n\n**Use Cases:**\n- Inventory systems need `full` detail\n- Label-based filtering needs `labels`\n- Historical analysis may need `deleted`\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Maximum time in milliseconds to wait for the query to complete.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:**\n- `timeout=30000` - 30 second timeout\n\nFor agent info queries, timeouts are rarely needed as this is a fast metadata-only operation. However, on very large multi-node setups, you may want to limit query time.\n",
                              "key": "timeout",
                              "value": "<long>"
                            },
                            {
                              "description": "Limit the number of nodes returned.\n\n**Format:** Integer (maximum nodes)\n\n**Default:** No limit\n\n**Example:**\n- `cardinality=100` - Return at most 100 nodes\n\n**Use Cases:**\n- Prevent huge responses in very large infrastructures\n- Get a sample of nodes for testing\n- Dashboard widgets with limited display space\n\nWhen exceeded, response indicates how many nodes were omitted.\n",
                              "key": "cardinality",
                              "value": "<integer>"
                            }
                          ]
                        }
                      },
                      "status": "OK",
                      "code": 200,
                      "_postman_previewlanguage": "json",
                      "header": [
                        {
                          "key": "Content-Type",
                          "value": "application/json"
                        }
                      ],
                      "cookie": [],
                      "responseTime": null,
                      "body": "{}",
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-3420952e-ba4b-4cf3-8b0c-31878b57d948"
                    },
                    {
                      "id": "8fba3207-fc70-4dcc-b44a-20a953a6e308",
                      "name": "Bad request. Common causes:\n- Invalid parameter values\n- Malformed filter patterns\n",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/info?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "info"
                          ],
                          "query": [
                            {
                              "description": "Filter to specific nodes using simple pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated list for multiple patterns\n- `!` prefix to exclude\n- Combine with: `web* !web-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=prod-*` - All production nodes\n- `scope_nodes=* !test*` - All except test nodes\n\n**Use Cases:**\n- Focus on specific infrastructure tiers\n- Exclude development/test environments\n- Group by naming conventions\n\nWhen not specified, returns info for all nodes.\n",
                              "key": "scope_nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Filter to specific nodes by exact names.\n\nUnlike `scope_nodes`, this requires exact node names (no patterns).\n\n**Format:** Comma or pipe-separated list\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-server-01,db-server-01` - Multiple nodes\n- `nodes=web-01|web-02` - Pipe separator\n\n**Best Practice:**\n- Use `nodes` when you know exact names\n- Use `scope_nodes` for pattern-based filtering\n\nWhen not specified, returns info for all nodes matching scope_nodes.\n",
                              "key": "nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Control the level of detail and what information to include in the response.\n\n**Available Options:**\n- `full` or `all` - Include all available information\n- `labels` - Include host labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include information about deleted/offline nodes\n- `hidden` - Include hidden agents\n\n**Examples:**\n- `options=full` - Complete information\n- `options=labels,uuids` - Labels and identifiers\n- `options=labels|uuids` - Pipe separator also works\n\n**Default Behavior:**\nWhen not specified, returns standard information without deleted/hidden nodes and without excessive detail.\n\n**Use Cases:**\n- Inventory systems need `full` detail\n- Label-based filtering needs `labels`\n- Historical analysis may need `deleted`\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Maximum time in milliseconds to wait for the query to complete.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:**\n- `timeout=30000` - 30 second timeout\n\nFor agent info queries, timeouts are rarely needed as this is a fast metadata-only operation. However, on very large multi-node setups, you may want to limit query time.\n",
                              "key": "timeout",
                              "value": "<long>"
                            },
                            {
                              "description": "Limit the number of nodes returned.\n\n**Format:** Integer (maximum nodes)\n\n**Default:** No limit\n\n**Example:**\n- `cardinality=100` - Return at most 100 nodes\n\n**Use Cases:**\n- Prevent huge responses in very large infrastructures\n- Get a sample of nodes for testing\n- Dashboard widgets with limited display space\n\nWhen exceeded, response indicates how many nodes were omitted.\n",
                              "key": "cardinality",
                              "value": "<integer>"
                            }
                          ]
                        }
                      },
                      "status": "Bad Request",
                      "code": 400,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-8fba3207-fc70-4dcc-b44a-20a953a6e308"
                    },
                    {
                      "id": "102df730-df09-44f4-bca3-3eaacfbf6a23",
                      "name": "Internal server error during info retrieval.",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/info?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "info"
                          ],
                          "query": [
                            {
                              "description": "Filter to specific nodes using simple pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated list for multiple patterns\n- `!` prefix to exclude\n- Combine with: `web* !web-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=prod-*` - All production nodes\n- `scope_nodes=* !test*` - All except test nodes\n\n**Use Cases:**\n- Focus on specific infrastructure tiers\n- Exclude development/test environments\n- Group by naming conventions\n\nWhen not specified, returns info for all nodes.\n",
                              "key": "scope_nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Filter to specific nodes by exact names.\n\nUnlike `scope_nodes`, this requires exact node names (no patterns).\n\n**Format:** Comma or pipe-separated list\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-server-01,db-server-01` - Multiple nodes\n- `nodes=web-01|web-02` - Pipe separator\n\n**Best Practice:**\n- Use `nodes` when you know exact names\n- Use `scope_nodes` for pattern-based filtering\n\nWhen not specified, returns info for all nodes matching scope_nodes.\n",
                              "key": "nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Control the level of detail and what information to include in the response.\n\n**Available Options:**\n- `full` or `all` - Include all available information\n- `labels` - Include host labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include information about deleted/offline nodes\n- `hidden` - Include hidden agents\n\n**Examples:**\n- `options=full` - Complete information\n- `options=labels,uuids` - Labels and identifiers\n- `options=labels|uuids` - Pipe separator also works\n\n**Default Behavior:**\nWhen not specified, returns standard information without deleted/hidden nodes and without excessive detail.\n\n**Use Cases:**\n- Inventory systems need `full` detail\n- Label-based filtering needs `labels`\n- Historical analysis may need `deleted`\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Maximum time in milliseconds to wait for the query to complete.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:**\n- `timeout=30000` - 30 second timeout\n\nFor agent info queries, timeouts are rarely needed as this is a fast metadata-only operation. However, on very large multi-node setups, you may want to limit query time.\n",
                              "key": "timeout",
                              "value": "<long>"
                            },
                            {
                              "description": "Limit the number of nodes returned.\n\n**Format:** Integer (maximum nodes)\n\n**Default:** No limit\n\n**Example:**\n- `cardinality=100` - Return at most 100 nodes\n\n**Use Cases:**\n- Prevent huge responses in very large infrastructures\n- Get a sample of nodes for testing\n- Dashboard widgets with limited display space\n\nWhen exceeded, response indicates how many nodes were omitted.\n",
                              "key": "cardinality",
                              "value": "<integer>"
                            }
                          ]
                        }
                      },
                      "status": "Internal Server Error",
                      "code": 500,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-102df730-df09-44f4-bca3-3eaacfbf6a23"
                    }
                  ],
                  "createdAt": "2026-07-28T02:17:38.000Z",
                  "updatedAt": "2026-07-28T02:17:38.000Z",
                  "uid": "35240-cefa82dc-c8ce-4d18-a9cf-53f007c39730"
                }
              ],
              "id": "2e1bef32-42ae-4896-a842-58535ade71ff",
              "createdAt": "2026-07-28T02:17:38.000Z",
              "updatedAt": "2026-07-28T02:17:38.000Z",
              "uid": "35240-2e1bef32-42ae-4896-a842-58535ade71ff"
            },
            {
              "name": "node_instances",
              "item": [
                {
                  "name": "Retrieve chart instances organized by node across the infrastructure",
                  "id": "5a558184-2d5a-4787-84be-427ee59e40c4",
                  "protocolProfileBehavior": {
                    "disableBodyPruning": true
                  },
                  "request": {
                    "auth": {
                      "type": "noauth"
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/api/v3/node_instances?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "api",
                        "v3",
                        "node_instances"
                      ],
                      "query": [
                        {
                          "description": "Filter to specific nodes using pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated for multiple patterns\n- `!` prefix excludes\n- Example: `prod-* !prod-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=db-* cache-*` - Database and cache nodes\n- `scope_nodes=* !test*` - All except test nodes\n\nWhen not specified, returns instances from all nodes.\n",
                          "key": "scope_nodes",
                          "value": "<string>"
                        },
                        {
                          "description": "Filter to specific nodes by exact names.\n\n**Format:** Comma or pipe-separated exact names\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-01,db-01` - Multiple nodes\n\n**Best Practice:** Use `nodes` for exact names, `scope_nodes` for patterns.\n\nWhen not specified, returns instances from all nodes.\n",
                          "key": "nodes",
                          "value": "<string>"
                        },
                        {
                          "description": "Control response detail level and included information.\n\n**Available Options:**\n- `full` or `all` - Complete instance information\n- `labels` - Include instance labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include deleted/offline instances\n- `hidden` - Include hidden instances\n- `instances` or `charts` - Include chart instances (default)\n- `metrics` or `dimensions` - Include dimension details\n\n**Examples:**\n- `options=full` - All information\n- `options=labels,dimensions` - Labels and dimension details\n- `options=labels|uuids` - Pipe separator\n\n**Default:** Returns basic instance information without excessive detail.\n",
                          "key": "options",
                          "value": "<string>"
                        },
                        {
                          "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                          "key": "after",
                          "value": "-600"
                        },
                        {
                          "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                          "key": "before",
                          "value": "0"
                        },
                        {
                          "description": "Maximum time in milliseconds to wait for query completion.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:** `timeout=30000` (30 seconds)\n\nFor large multi-node infrastructures, you may need to increase timeout to allow complete instance enumeration.\n",
                          "key": "timeout",
                          "value": "<long>"
                        },
                        {
                          "description": "Limit the number of instances returned per node.\n\n**Format:** Integer (max instances per node)\n\n**Default:** No limit\n\n**Example:** `cardinality=500` - At most 500 instances per node\n\n**Use Cases:**\n- Prevent huge responses from nodes with many instances\n- Sample instances for testing\n- Dashboard widgets with limited space\n\nWhen exceeded, response indicates how many instances were omitted per node.\n",
                          "key": "cardinality",
                          "value": "<integer>"
                        }
                      ]
                    },
                    "description": "Returns information about all chart instances grouped by node. This endpoint provides a comprehensive view of what metrics are being collected on each node, organized by chart instances.\n\n**What are Node Instances?**\nNode instances represent the specific chart instances (individual monitoring targets) on each node:\n- Each node may have multiple instances of the same chart type\n- Examples: Multiple disks (sda, sdb, sdc), multiple network interfaces (eth0, eth1)\n- Instances represent the specific entities being monitored\n\n**Example:**\nFor disk monitoring:\n- Node: `web-server-01`\n  - Instances: `disk.sda`, `disk.sdb`, `disk.nvme0n1`\n- Node: `db-server-01`\n  - Instances: `disk.sda`, `disk.sdb`\n\n**Difference from Other Endpoints:**\n- **`/api/v3/nodes`:** Returns lightweight node list\n- **`/api/v3/info`:** Returns detailed agent information\n- **`/api/v3/node_instances`:** Returns what chart instances each node has (what's being monitored)\n- **`/api/v3/contexts`:** Returns contexts aggregated across all nodes\n\n**Use Cases:**\n- **Infrastructure Discovery:** What devices/services are monitored on each node\n- **Capacity Planning:** Understand monitoring coverage per node\n- **Configuration Verification:** Verify expected charts are collecting\n- **Collector Status:** See which collectors are active per node\n- **Instance Inventory:** Complete catalog of monitored entities\n- **Troubleshooting:** Find which nodes monitor specific instances\n\n**Response Organization:**\nResults are organized hierarchically:\n1. **By Node:** Top-level grouping by node hostname\n2. **By Context:** Charts grouped by their context (e.g., disk.space)\n3. **By Instance:** Individual chart instances within each context\n\n**Performance Characteristics:**\n- Medium query cost (metadata aggregation across nodes)\n- Response size grows with number of nodes and instances\n- Can be filtered to reduce response size\n- Results can be cached (instances change infrequently)\n\n**Example Query Patterns:**\n```\n# Get all instances across all nodes\nGET /api/v3/node_instances\n\n# Get instances for specific nodes\nGET /api/v3/node_instances?nodes=web-server-01,db-server-01\n\n# Get instances for nodes matching pattern\nGET /api/v3/node_instances?scope_nodes=prod-*\n\n# Limit response size\nGET /api/v3/node_instances?cardinality=100\n```\n\n**Response Includes:**\n- Node identification (hostname, machine_guid)\n- Agent information (version, capabilities)\n- All chart instances organized by context\n- Instance-specific metadata (labels, units, dimensions)\n- Instance collection status\n\n**Security & Access Control:**\n- \ud83d\udcca **Public Data API** - Bearer token optional, IP-based ACL restrictions apply\n- **Default Access:** Public (no authentication required)\n- **Bearer Protection:** When enabled via `/api/v3/bearer_protection`, requires bearer token\n- **IP Restrictions:** Subject to `allow dashboard from` in netdata.conf\n- **Access Methods:** Direct HTTP/HTTPS, Netdata Cloud, external tools\n"
                  },
                  "response": [
                    {
                      "id": "8cc2dbc4-d230-4602-8390-e81263743f5d",
                      "name": "Success. Returns chart instances organized by node.\n\n**Response Structure:**\n```json\n{\n  \"nodes\": [\n    {\n      \"machine_guid\": \"uuid\",\n      \"hostname\": \"web-server-01\",\n      \"agent_version\": \"v1.40.0\",\n      \"contexts\": [\n        {\n          \"context\":",
                      "originalRequest": {
                        "method": "GET",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          }
                        ],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/node_instances?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "node_instances"
                          ],
                          "query": [
                            {
                              "description": "Filter to specific nodes using pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated for multiple patterns\n- `!` prefix excludes\n- Example: `prod-* !prod-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=db-* cache-*` - Database and cache nodes\n- `scope_nodes=* !test*` - All except test nodes\n\nWhen not specified, returns instances from all nodes.\n",
                              "key": "scope_nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Filter to specific nodes by exact names.\n\n**Format:** Comma or pipe-separated exact names\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-01,db-01` - Multiple nodes\n\n**Best Practice:** Use `nodes` for exact names, `scope_nodes` for patterns.\n\nWhen not specified, returns instances from all nodes.\n",
                              "key": "nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Control response detail level and included information.\n\n**Available Options:**\n- `full` or `all` - Complete instance information\n- `labels` - Include instance labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include deleted/offline instances\n- `hidden` - Include hidden instances\n- `instances` or `charts` - Include chart instances (default)\n- `metrics` or `dimensions` - Include dimension details\n\n**Examples:**\n- `options=full` - All information\n- `options=labels,dimensions` - Labels and dimension details\n- `options=labels|uuids` - Pipe separator\n\n**Default:** Returns basic instance information without excessive detail.\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Maximum time in milliseconds to wait for query completion.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:** `timeout=30000` (30 seconds)\n\nFor large multi-node infrastructures, you may need to increase timeout to allow complete instance enumeration.\n",
                              "key": "timeout",
                              "value": "<long>"
                            },
                            {
                              "description": "Limit the number of instances returned per node.\n\n**Format:** Integer (max instances per node)\n\n**Default:** No limit\n\n**Example:** `cardinality=500` - At most 500 instances per node\n\n**Use Cases:**\n- Prevent huge responses from nodes with many instances\n- Sample instances for testing\n- Dashboard widgets with limited space\n\nWhen exceeded, response indicates how many instances were omitted per node.\n",
                              "key": "cardinality",
                              "value": "<integer>"
                            }
                          ]
                        }
                      },
                      "status": "OK",
                      "code": 200,
                      "_postman_previewlanguage": "json",
                      "header": [
                        {
                          "key": "Content-Type",
                          "value": "application/json"
                        }
                      ],
                      "cookie": [],
                      "responseTime": null,
                      "body": "{}",
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-8cc2dbc4-d230-4602-8390-e81263743f5d"
                    },
                    {
                      "id": "a1d90ba8-237c-4da6-a8bf-e00751331fa2",
                      "name": "Bad request. Common causes:\n- Invalid parameter values\n- Malformed filter patterns\n",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/node_instances?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "node_instances"
                          ],
                          "query": [
                            {
                              "description": "Filter to specific nodes using pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated for multiple patterns\n- `!` prefix excludes\n- Example: `prod-* !prod-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=db-* cache-*` - Database and cache nodes\n- `scope_nodes=* !test*` - All except test nodes\n\nWhen not specified, returns instances from all nodes.\n",
                              "key": "scope_nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Filter to specific nodes by exact names.\n\n**Format:** Comma or pipe-separated exact names\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-01,db-01` - Multiple nodes\n\n**Best Practice:** Use `nodes` for exact names, `scope_nodes` for patterns.\n\nWhen not specified, returns instances from all nodes.\n",
                              "key": "nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Control response detail level and included information.\n\n**Available Options:**\n- `full` or `all` - Complete instance information\n- `labels` - Include instance labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include deleted/offline instances\n- `hidden` - Include hidden instances\n- `instances` or `charts` - Include chart instances (default)\n- `metrics` or `dimensions` - Include dimension details\n\n**Examples:**\n- `options=full` - All information\n- `options=labels,dimensions` - Labels and dimension details\n- `options=labels|uuids` - Pipe separator\n\n**Default:** Returns basic instance information without excessive detail.\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Maximum time in milliseconds to wait for query completion.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:** `timeout=30000` (30 seconds)\n\nFor large multi-node infrastructures, you may need to increase timeout to allow complete instance enumeration.\n",
                              "key": "timeout",
                              "value": "<long>"
                            },
                            {
                              "description": "Limit the number of instances returned per node.\n\n**Format:** Integer (max instances per node)\n\n**Default:** No limit\n\n**Example:** `cardinality=500` - At most 500 instances per node\n\n**Use Cases:**\n- Prevent huge responses from nodes with many instances\n- Sample instances for testing\n- Dashboard widgets with limited space\n\nWhen exceeded, response indicates how many instances were omitted per node.\n",
                              "key": "cardinality",
                              "value": "<integer>"
                            }
                          ]
                        }
                      },
                      "status": "Bad Request",
                      "code": 400,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-a1d90ba8-237c-4da6-a8bf-e00751331fa2"
                    },
                    {
                      "id": "58c7fd42-bb3b-4beb-9a6c-1a0294a70ef1",
                      "name": "Internal server error during instance enumeration.",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/node_instances?scope_nodes=<string>&nodes=<string>&options=<string>&after=-600&before=0&timeout=<long>&cardinality=<integer>",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "node_instances"
                          ],
                          "query": [
                            {
                              "description": "Filter to specific nodes using pattern matching.\n\n**Pattern Syntax:**\n- `*` matches any characters\n- Space-separated for multiple patterns\n- `!` prefix excludes\n- Example: `prod-* !prod-test*`\n\n**Examples:**\n- `scope_nodes=web*` - All web servers\n- `scope_nodes=db-* cache-*` - Database and cache nodes\n- `scope_nodes=* !test*` - All except test nodes\n\nWhen not specified, returns instances from all nodes.\n",
                              "key": "scope_nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Filter to specific nodes by exact names.\n\n**Format:** Comma or pipe-separated exact names\n\n**Examples:**\n- `nodes=web-server-01` - Single node\n- `nodes=web-01,db-01` - Multiple nodes\n\n**Best Practice:** Use `nodes` for exact names, `scope_nodes` for patterns.\n\nWhen not specified, returns instances from all nodes.\n",
                              "key": "nodes",
                              "value": "<string>"
                            },
                            {
                              "description": "Control response detail level and included information.\n\n**Available Options:**\n- `full` or `all` - Complete instance information\n- `labels` - Include instance labels\n- `uuids` - Include UUIDs and identifiers\n- `deleted` - Include deleted/offline instances\n- `hidden` - Include hidden instances\n- `instances` or `charts` - Include chart instances (default)\n- `metrics` or `dimensions` - Include dimension details\n\n**Examples:**\n- `options=full` - All information\n- `options=labels,dimensions` - Labels and dimension details\n- `options=labels|uuids` - Pipe separator\n\n**Default:** Returns basic instance information without excessive detail.\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `after` can be a negative number of seconds, up to 3 years (-94608000), relative to `before`. If not set, it is usually assumed to be -600. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "after",
                              "value": "-600"
                            },
                            {
                              "description": "`after` and `before` define the time-frame of a query. `before` can be a negative number of seconds, up to 3 years (-94608000), relative to current clock. If not set, it is assumed to be the current clock time. When `before` is positive, it is assumed to be a unix epoch timestamp. When non-data endpoints support the `after` and `before`, they use the time-frame to limit their response for objects having data retention within the time-frame given.\n",
                              "key": "before",
                              "value": "0"
                            },
                            {
                              "description": "Maximum time in milliseconds to wait for query completion.\n\n**Format:** Integer (milliseconds)\n\n**Default:** Server default timeout\n\n**Example:** `timeout=30000` (30 seconds)\n\nFor large multi-node infrastructures, you may need to increase timeout to allow complete instance enumeration.\n",
                              "key": "timeout",
                              "value": "<long>"
                            },
                            {
                              "description": "Limit the number of instances returned per node.\n\n**Format:** Integer (max instances per node)\n\n**Default:** No limit\n\n**Example:** `cardinality=500` - At most 500 instances per node\n\n**Use Cases:**\n- Prevent huge responses from nodes with many instances\n- Sample instances for testing\n- Dashboard widgets with limited space\n\nWhen exceeded, response indicates how many instances were omitted per node.\n",
                              "key": "cardinality",
                              "value": "<integer>"
                            }
                          ]
                        }
                      },
                      "status": "Internal Server Error",
                      "code": 500,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-58c7fd42-bb3b-4beb-9a6c-1a0294a70ef1"
                    }
                  ],
                  "createdAt": "2026-07-28T02:17:38.000Z",
                  "updatedAt": "2026-07-28T02:17:38.000Z",
                  "uid": "35240-5a558184-2d5a-4787-84be-427ee59e40c4"
                }
              ],
              "id": "f1c68339-ac30-450e-8946-77046de3865e",
              "createdAt": "2026-07-28T02:17:38.000Z",
              "updatedAt": "2026-07-28T02:17:38.000Z",
              "uid": "35240-f1c68339-ac30-450e-8946-77046de3865e"
            },
            {
              "name": "stream_path",
              "item": [
                {
                  "name": "Retrieve streaming topology path for nodes",
                  "id": "b7def21b-41d6-4d69-a792-df64b2079799",
                  "protocolProfileBehavior": {
                    "disableBodyPruning": true
                  },
                  "request": {
                    "auth": {
                      "type": "noauth"
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/api/v3/stream_path?scope_nodes=*&nodes=*&options=<string>&timeout=60&cardinality=1000",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "api",
                        "v3",
                        "stream_path"
                      ],
                      "query": [
                        {
                          "description": "Simple pattern to match node hostnames for scope filtering. Uses Netdata's simple pattern\nmatching (not regex). Matched nodes define the scope for topology analysis.\n\n**Pattern Syntax:**\n- `*` matches any number of characters\n- Use `|` to separate multiple patterns (OR logic)\n- Matches are case-insensitive\n- No regex support - only simple wildcards\n\n**Examples:**\n- `prod-*` - All production nodes\n- `*-web-*` - All web server nodes\n- `db-*|cache-*` - All database or cache nodes\n- `*` - All nodes (default)\n",
                          "key": "scope_nodes",
                          "value": "*"
                        },
                        {
                          "description": "Simple pattern to filter which nodes to include in the streaming path response.\nAfter scope is determined, this filters the results. Uses the same pattern syntax as scope_nodes.\n\n**Difference from scope_nodes:**\n- `scope_nodes` defines what nodes to analyze for relationships\n- `nodes` filters which nodes to include in the output\n\n**Examples:**\n- `web-*` - Only show web server nodes in output\n- `parent-*` - Only show parent nodes\n- Specific hostnames: `node1|node2|node3`\n",
                          "key": "nodes",
                          "value": "*"
                        },
                        {
                          "description": "Comma-separated list of options to control response content and format.\n\n**Available Options:**\n- `minify` - Minimize JSON output (no pretty-printing)\n- `debug` - Include debug information about streaming connections\n- `raw` - Include raw streaming metadata\n\n**Examples:**\n- `minify` - Compact JSON response\n- `debug,raw` - Debug mode with raw metadata\n",
                          "key": "options",
                          "value": "<string>"
                        },
                        {
                          "description": "Maximum time in seconds to wait for the query to complete before timing out.\n\n**Guidelines:**\n- Recommended: 30-60 seconds for most queries\n- Large infrastructures may need longer timeouts\n- Queries timeout if streaming metadata collection takes too long\n",
                          "key": "timeout",
                          "value": "60"
                        },
                        {
                          "description": "Maximum number of nodes to include in the response to prevent overwhelming large responses.\nWhen this limit is exceeded, the response will indicate how many nodes were omitted.\n\n**Purpose:**\n- Prevent memory exhaustion from very large infrastructures\n- Control response size for performance\n- Useful when exploring large node hierarchies incrementally\n\n**Recommendations:**\n- Small infrastructures (< 50 nodes): Use default or increase\n- Medium infrastructures (50-500 nodes): 200-500\n- Large infrastructures (> 500 nodes): Use filtering or increase limit carefully\n",
                          "key": "cardinality",
                          "value": "1000"
                        }
                      ]
                    },
                    "description": "**V3 SPECIFIC ENDPOINT**\n\nReturns the streaming path and topology showing how nodes are connected in the Netdata infrastructure.\nThis endpoint reveals the parent-child relationships between nodes, showing which nodes stream data\nto which parents, creating a hierarchical view of the monitoring infrastructure.\n\n**Streaming Topology:**\n- **Parent nodes**: Nodes that receive streaming data from child nodes\n- **Child nodes**: Nodes that send their metrics to parent nodes for centralization\n- **Streaming path**: The complete chain from child \u2192 parent \u2192 grandparent (if any)\n\n**Use Cases:**\n- Understand infrastructure hierarchy and data flow\n- Identify parent nodes that aggregate data from multiple children\n- Debug streaming connectivity issues\n- Plan infrastructure changes and reorganization\n- Visualize the complete monitoring topology\n\n**Common Usage Patterns:**\n\n1. **Get complete streaming topology:**\n   ```\n   /api/v3/stream_path\n   ```\n\n2. **Filter by specific nodes:**\n   ```\n   /api/v3/stream_path?nodes=child-node-1|child-node-2\n   ```\n\n3. **Scope to nodes matching pattern:**\n   ```\n   /api/v3/stream_path?scope_nodes=prod-*\n   ```\n\n**Response Structure:**\nThe response includes nodes organized by their streaming relationships, showing:\n- Node hostnames and machine GUIDs\n- Parent-child relationships\n- Streaming connection status (live/stale/offline)\n- Complete path from each child to root parent\n\n**Security & Access Control:**\n- \ud83d\udcca **Public Data API** - Bearer token optional, IP-based ACL restrictions apply\n- **Default Access:** Public (no authentication required)\n- **Bearer Protection:** When enabled via `/api/v3/bearer_protection`, requires bearer token\n- **IP Restrictions:** Subject to `allow dashboard from` in netdata.conf\n- **Access Methods:** Direct HTTP/HTTPS, Netdata Cloud, external tools\n"
                  },
                  "response": [
                    {
                      "id": "3d31e404-167c-4a29-bd56-c61cc1d7e35b",
                      "name": "Successfully retrieved streaming topology path information.\n\nReturns nodes with their streaming relationships, showing parent-child hierarchy,\nconnection status, and complete paths from children to root parents.\n",
                      "originalRequest": {
                        "method": "GET",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          }
                        ],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/stream_path?scope_nodes=*&nodes=*&options=<string>&timeout=60&cardinality=1000",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "stream_path"
                          ],
                          "query": [
                            {
                              "description": "Simple pattern to match node hostnames for scope filtering. Uses Netdata's simple pattern\nmatching (not regex). Matched nodes define the scope for topology analysis.\n\n**Pattern Syntax:**\n- `*` matches any number of characters\n- Use `|` to separate multiple patterns (OR logic)\n- Matches are case-insensitive\n- No regex support - only simple wildcards\n\n**Examples:**\n- `prod-*` - All production nodes\n- `*-web-*` - All web server nodes\n- `db-*|cache-*` - All database or cache nodes\n- `*` - All nodes (default)\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "Simple pattern to filter which nodes to include in the streaming path response.\nAfter scope is determined, this filters the results. Uses the same pattern syntax as scope_nodes.\n\n**Difference from scope_nodes:**\n- `scope_nodes` defines what nodes to analyze for relationships\n- `nodes` filters which nodes to include in the output\n\n**Examples:**\n- `web-*` - Only show web server nodes in output\n- `parent-*` - Only show parent nodes\n- Specific hostnames: `node1|node2|node3`\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "Comma-separated list of options to control response content and format.\n\n**Available Options:**\n- `minify` - Minimize JSON output (no pretty-printing)\n- `debug` - Include debug information about streaming connections\n- `raw` - Include raw streaming metadata\n\n**Examples:**\n- `minify` - Compact JSON response\n- `debug,raw` - Debug mode with raw metadata\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "Maximum time in seconds to wait for the query to complete before timing out.\n\n**Guidelines:**\n- Recommended: 30-60 seconds for most queries\n- Large infrastructures may need longer timeouts\n- Queries timeout if streaming metadata collection takes too long\n",
                              "key": "timeout",
                              "value": "60"
                            },
                            {
                              "description": "Maximum number of nodes to include in the response to prevent overwhelming large responses.\nWhen this limit is exceeded, the response will indicate how many nodes were omitted.\n\n**Purpose:**\n- Prevent memory exhaustion from very large infrastructures\n- Control response size for performance\n- Useful when exploring large node hierarchies incrementally\n\n**Recommendations:**\n- Small infrastructures (< 50 nodes): Use default or increase\n- Medium infrastructures (50-500 nodes): 200-500\n- Large infrastructures (> 500 nodes): Use filtering or increase limit carefully\n",
                              "key": "cardinality",
                              "value": "1000"
                            }
                          ]
                        }
                      },
                      "status": "OK",
                      "code": 200,
                      "_postman_previewlanguage": "json",
                      "header": [
                        {
                          "key": "Content-Type",
                          "value": "application/json"
                        }
                      ],
                      "cookie": [],
                      "responseTime": null,
                      "body": "{\n  \"nodes\": [\n    {\n      \"hostname\": \"<string>\",\n      \"machine_guid\": \"<string>\",\n      \"parent\": \"<string>\",\n      \"parent_guid\": \"<string>\",\n      \"streaming_status\": \"live\",\n      \"path\": [\n        \"<string>\",\n        \"<string>\"\n      ]\n    },\n    {\n      \"hostname\": \"<string>\",\n      \"machine_guid\": \"<string>\",\n      \"parent\": \"<string>\",\n      \"parent_guid\": \"<string>\",\n      \"streaming_status\": \"stale\",\n      \"path\": [\n        \"<string>\",\n        \"<string>\"\n      ]\n    }\n  ],\n  \"omitted\": \"<integer>\"\n}",
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-3d31e404-167c-4a29-bd56-c61cc1d7e35b"
                    },
                    {
                      "id": "0191a9e7-64b8-4ca3-839b-5a655cb54598",
                      "name": "Invalid parameters provided (e.g., invalid pattern syntax).",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/stream_path?scope_nodes=*&nodes=*&options=<string>&timeout=60&cardinality=1000",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "stream_path"
                          ],
                          "query": [
                            {
                              "description": "Simple pattern to match node hostnames for scope filtering. Uses Netdata's simple pattern\nmatching (not regex). Matched nodes define the scope for topology analysis.\n\n**Pattern Syntax:**\n- `*` matches any number of characters\n- Use `|` to separate multiple patterns (OR logic)\n- Matches are case-insensitive\n- No regex support - only simple wildcards\n\n**Examples:**\n- `prod-*` - All production nodes\n- `*-web-*` - All web server nodes\n- `db-*|cache-*` - All database or cache nodes\n- `*` - All nodes (default)\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "Simple pattern to filter which nodes to include in the streaming path response.\nAfter scope is determined, this filters the results. Uses the same pattern syntax as scope_nodes.\n\n**Difference from scope_nodes:**\n- `scope_nodes` defines what nodes to analyze for relationships\n- `nodes` filters which nodes to include in the output\n\n**Examples:**\n- `web-*` - Only show web server nodes in output\n- `parent-*` - Only show parent nodes\n- Specific hostnames: `node1|node2|node3`\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "Comma-separated list of options to control response content and format.\n\n**Available Options:**\n- `minify` - Minimize JSON output (no pretty-printing)\n- `debug` - Include debug information about streaming connections\n- `raw` - Include raw streaming metadata\n\n**Examples:**\n- `minify` - Compact JSON response\n- `debug,raw` - Debug mode with raw metadata\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "Maximum time in seconds to wait for the query to complete before timing out.\n\n**Guidelines:**\n- Recommended: 30-60 seconds for most queries\n- Large infrastructures may need longer timeouts\n- Queries timeout if streaming metadata collection takes too long\n",
                              "key": "timeout",
                              "value": "60"
                            },
                            {
                              "description": "Maximum number of nodes to include in the response to prevent overwhelming large responses.\nWhen this limit is exceeded, the response will indicate how many nodes were omitted.\n\n**Purpose:**\n- Prevent memory exhaustion from very large infrastructures\n- Control response size for performance\n- Useful when exploring large node hierarchies incrementally\n\n**Recommendations:**\n- Small infrastructures (< 50 nodes): Use default or increase\n- Medium infrastructures (50-500 nodes): 200-500\n- Large infrastructures (> 500 nodes): Use filtering or increase limit carefully\n",
                              "key": "cardinality",
                              "value": "1000"
                            }
                          ]
                        }
                      },
                      "status": "Bad Request",
                      "code": 400,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-0191a9e7-64b8-4ca3-839b-5a655cb54598"
                    },
                    {
                      "id": "fcf16eb1-2b7f-4282-9944-493422013b72",
                      "name": "Internal server error during streaming topology retrieval.",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/stream_path?scope_nodes=*&nodes=*&options=<string>&timeout=60&cardinality=1000",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "stream_path"
                          ],
                          "query": [
                            {
                              "description": "Simple pattern to match node hostnames for scope filtering. Uses Netdata's simple pattern\nmatching (not regex). Matched nodes define the scope for topology analysis.\n\n**Pattern Syntax:**\n- `*` matches any number of characters\n- Use `|` to separate multiple patterns (OR logic)\n- Matches are case-insensitive\n- No regex support - only simple wildcards\n\n**Examples:**\n- `prod-*` - All production nodes\n- `*-web-*` - All web server nodes\n- `db-*|cache-*` - All database or cache nodes\n- `*` - All nodes (default)\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "Simple pattern to filter which nodes to include in the streaming path response.\nAfter scope is determined, this filters the results. Uses the same pattern syntax as scope_nodes.\n\n**Difference from scope_nodes:**\n- `scope_nodes` defines what nodes to analyze for relationships\n- `nodes` filters which nodes to include in the output\n\n**Examples:**\n- `web-*` - Only show web server nodes in output\n- `parent-*` - Only show parent nodes\n- Specific hostnames: `node1|node2|node3`\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "Comma-separated list of options to control response content and format.\n\n**Available Options:**\n- `minify` - Minimize JSON output (no pretty-printing)\n- `debug` - Include debug information about streaming connections\n- `raw` - Include raw streaming metadata\n\n**Examples:**\n- `minify` - Compact JSON response\n- `debug,raw` - Debug mode with raw metadata\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "Maximum time in seconds to wait for the query to complete before timing out.\n\n**Guidelines:**\n- Recommended: 30-60 seconds for most queries\n- Large infrastructures may need longer timeouts\n- Queries timeout if streaming metadata collection takes too long\n",
                              "key": "timeout",
                              "value": "60"
                            },
                            {
                              "description": "Maximum number of nodes to include in the response to prevent overwhelming large responses.\nWhen this limit is exceeded, the response will indicate how many nodes were omitted.\n\n**Purpose:**\n- Prevent memory exhaustion from very large infrastructures\n- Control response size for performance\n- Useful when exploring large node hierarchies incrementally\n\n**Recommendations:**\n- Small infrastructures (< 50 nodes): Use default or increase\n- Medium infrastructures (50-500 nodes): 200-500\n- Large infrastructures (> 500 nodes): Use filtering or increase limit carefully\n",
                              "key": "cardinality",
                              "value": "1000"
                            }
                          ]
                        }
                      },
                      "status": "Internal Server Error",
                      "code": 500,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-fcf16eb1-2b7f-4282-9944-493422013b72"
                    },
                    {
                      "id": "63483d60-3062-4207-a7c7-08928f26dfa8",
                      "name": "Query timeout - streaming topology collection took too long.",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v3/stream_path?scope_nodes=*&nodes=*&options=<string>&timeout=60&cardinality=1000",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v3",
                            "stream_path"
                          ],
                          "query": [
                            {
                              "description": "Simple pattern to match node hostnames for scope filtering. Uses Netdata's simple pattern\nmatching (not regex). Matched nodes define the scope for topology analysis.\n\n**Pattern Syntax:**\n- `*` matches any number of characters\n- Use `|` to separate multiple patterns (OR logic)\n- Matches are case-insensitive\n- No regex support - only simple wildcards\n\n**Examples:**\n- `prod-*` - All production nodes\n- `*-web-*` - All web server nodes\n- `db-*|cache-*` - All database or cache nodes\n- `*` - All nodes (default)\n",
                              "key": "scope_nodes",
                              "value": "*"
                            },
                            {
                              "description": "Simple pattern to filter which nodes to include in the streaming path response.\nAfter scope is determined, this filters the results. Uses the same pattern syntax as scope_nodes.\n\n**Difference from scope_nodes:**\n- `scope_nodes` defines what nodes to analyze for relationships\n- `nodes` filters which nodes to include in the output\n\n**Examples:**\n- `web-*` - Only show web server nodes in output\n- `parent-*` - Only show parent nodes\n- Specific hostnames: `node1|node2|node3`\n",
                              "key": "nodes",
                              "value": "*"
                            },
                            {
                              "description": "Comma-separated list of options to control response content and format.\n\n**Available Options:**\n- `minify` - Minimize JSON output (no pretty-printing)\n- `debug` - Include debug information about streaming connections\n- `raw` - Include raw streaming metadata\n\n**Examples:**\n- `minify` - Compact JSON response\n- `debug,raw` - Debug mode with raw metadata\n",
                              "key": "options",
                              "value": "<string>"
                            },
                            {
                              "description": "Maximum time in seconds to wait for the query to complete before timing out.\n\n**Guidelines:**\n- Recommended: 30-60 seconds for most queries\n- Large infrastructures may need longer timeouts\n- Queries timeout if streaming metadata collection takes too long\n",
                              "key": "timeout",
                              "value": "60"
                            },
                            {
                              "description": "Maximum number of nodes to include in the response to prevent overwhelming large responses.\nWhen this limit is exceeded, the response will indicate how many nodes were omitted.\n\n**Purpose:**\n- Prevent memory exhaustion from very large infrastructures\n- Control response size for performance\n- Useful when exploring large node hierarchies incrementally\n\n**Recommendations:**\n- Small infrastructures (< 50 nodes): Use default or increase\n- Medium infrastructures (50-500 nodes): 200-500\n- Large infrastructures (> 500 nodes): Use filtering or increase limit carefully\n",
                              "key": "cardinality",
                              "value": "1000"
                            }
                          ]
                        }
                      },
                      "status": "Gateway Timeout",
                      "code": 504,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-63483d60-3062-4207-a7c7-08928f26dfa8"
                    }
                  ],
                  "createdAt": "2026-07-28T02:17:38.000Z",
                  "updatedAt": "2026-07-28T02:17:38.000Z",
                  "uid": "35240-b7def21b-41d6-4d69-a792-df64b2079799"
                }
              ],
              "id": "9d538ed9-7d3c-4bd3-bb00-ac69cf6a198b",
              "createdAt": "2026-07-28T02:17:38.000Z",
              "updatedAt": "2026-07-28T02:17:38.000Z",
              "uid": "35240-9d538ed9-7d3c-4bd3-bb00-ac69cf6a198b"
            }
          ],
          "id": "0f995a18-dd8f-413e-92a3-3f5e45762d22",
          "createdAt": "2026-07-28T02:17:38.000Z",
          "updatedAt": "2026-07-28T02:17:38.000Z",
          "uid": "35240-0f995a18-dd8f-413e-92a3-3f5e45762d22"
        },
        {
          "name": "v1",
          "item": [
            {
              "name": "info",
              "item": [
                {
                  "name": "Node Info v1",
                  "id": "54b7dd42-3422-4ee5-9e73-22f89977f106",
                  "protocolProfileBehavior": {
                    "disableBodyPruning": true
                  },
                  "request": {
                    "auth": {
                      "type": "noauth"
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/api/v1/info",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "info"
                      ]
                    },
                    "description": "The info endpoint returns basic information about netdata. It provides:\n* netdata version\n* netdata unique id\n* list of hosts mirrored (includes itself)\n* Operating System, Virtualization, K8s nodes and Container technology information\n* List of active collector plugins and modules\n* Streaming information\n* number of alarms in the host\n  * number of alarms in normal state\n  * number of alarms in warning state\n  * number of alarms in critical state\n\n**Security & Access Control:**\n- \ud83d\udcca **Public Data API** - Bearer token optional, IP-based ACL restrictions apply\n- **Default Access:** Public (no authentication required)\n- **Bearer Protection:** When enabled via `/api/v3/bearer_protection`, requires bearer token\n- **IP Restrictions:** Subject to `allow dashboard from` in netdata.conf\n- **Access Methods:** Direct HTTP/HTTPS, Netdata Cloud, external tools\n"
                  },
                  "response": [
                    {
                      "id": "0682d90a-2f7f-4cc9-9db2-13073953ff7f",
                      "name": "netdata basic information.",
                      "originalRequest": {
                        "method": "GET",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          }
                        ],
                        "url": {
                          "raw": "{{baseUrl}}/api/v1/info",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "info"
                          ]
                        }
                      },
                      "status": "OK",
                      "code": 200,
                      "_postman_previewlanguage": "json",
                      "header": [
                        {
                          "key": "Content-Type",
                          "value": "application/json"
                        }
                      ],
                      "cookie": [],
                      "responseTime": null,
                      "body": "{\n  \"version\": \"<string>\",\n  \"uid\": \"<string>\",\n  \"mirrored_hosts\": [\n    \"<string>\",\n    \"<string>\"\n  ],\n  \"mirrored_hosts_status\": [\n    {\n      \"guid\": \"<uuid>\",\n      \"reachable\": \"<boolean>\",\n      \"claim_id\": \"<uuid>\"\n    },\n    {\n      \"guid\": \"<uuid>\",\n      \"reachable\": \"<boolean>\",\n      \"claim_id\": \"<uuid>\"\n    }\n  ],\n  \"os_name\": \"<string>\",\n  \"os_id\": \"<string>\",\n  \"os_id_like\": \"<string>\",\n  \"os_version\": \"<string>\",\n  \"os_version_id\": \"<string>\",\n  \"os_detection\": \"<string>\",\n  \"kernel_name\": \"<string>\",\n  \"kernel_version\": \"<string>\",\n  \"is_k8s_node\": \"<boolean>\",\n  \"architecture\": \"<string>\",\n  \"virtualization\": \"<string>\",\n  \"virt_detection\": \"<string>\",\n  \"container\": \"<string>\",\n  \"container_detection\": \"<string>\",\n  \"stream_compression\": \"<boolean>\",\n  \"labels\": {\n    \"app\": \"<string>\"\n  },\n  \"collectors\": [\n    {\n      \"plugin\": \"<string>\",\n      \"module\": \"<string>\"\n    },\n    {\n      \"plugin\": \"<string>\",\n      \"module\": \"<string>\"\n    }\n  ],\n  \"alarms\": {\n    \"normal\": \"<integer>\",\n    \"warning\": \"<integer>\",\n    \"critical\": \"<integer>\"\n  }\n}",
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-0682d90a-2f7f-4cc9-9db2-13073953ff7f"
                    },
                    {
                      "id": "85bc6ff3-11c7-4dd5-a18e-92d19056e069",
                      "name": "netdata daemon not ready (used for health checks).",
                      "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                          "raw": "{{baseUrl}}/api/v1/info",
                          "host": [
                            "{{baseUrl}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "info"
                          ]
                        }
                      },
                      "status": "Service Unavailable",
                      "code": 503,
                      "_postman_previewlanguage": "text",
                      "header": [],
                      "cookie": [],
                      "responseTime": null,
                      "body": null,
                      "createdAt": "2026-07-28T02:17:38.000Z",
                      "updatedAt": "2026-07-28T02:17:38.000Z",
                      "uid": "35240-85bc6ff3-11c7-4dd5-a18e-92d19056e069"
                    }
                  ],
                  "createdAt": "2026-07-28T02:17:38.000Z",
                  "updatedAt": "2026-07-28T02:17:38.000Z",
                  "uid": "35240-54b7dd42-3422-4ee5-9e73-22f89977f106"
                }
              ],
              "id": "1fa9765b-8646-46f3-9e73-561129d7ed3d",
              "createdAt": "2026-07-28T02:17:38.000Z",
              "updatedAt": "2026-07-28T02:17:38.000Z",
              "uid": "35240-1fa9765b-8646-46f3-9e73-561129d7ed3d"
            }
          ],
          "id": "f3d89a6c-4818-49eb-9f04-7433b6d522c7",
          "createdAt": "2026-07-28T02:17:38.000Z",
          "updatedAt": "2026-07-28T02:17:38.000Z",
          "uid": "35240-f3d89a6c-4818-49eb-9f04-7433b6d522c7"
        }
      ],
      "id": "8d208bc0-29a8-4b31-a6de-6c60d09d425d",
      "createdAt": "2026-07-28T02:17:38.000Z",
      "updatedAt": "2026-07-28T02:17:38.000Z",
      "uid": "35240-8d208bc0-29a8-4b31-a6de-6c60d09d425d"
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://registry.my-netdata.io"
    }
  ]
}