---
type: api
title: Get node information
description: **All methods and paths for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v9/operation/operation-nodes-info
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v9/operation/operation-nodes-info
products:
  - Elasticsearch
---

# Get node information


Availability: Generally available since 1.3

## Paths

- `GET` `/_nodes/{node_id}/{metric}`
- `GET` `/_nodes/{node_id}`
- `GET` `/_nodes/{metric}`
- `GET` `/_nodes`

#### Path parameters

- `node_id` (union string | string[]) — optional, leave it out to use `/_nodes`
  Comma-separated list of node IDs or names used to limit returned information.
- `metric` (union enum | enum[]) — optional, leave it out to use `/_nodes`
  Limits the information returned to the specific metrics. Supports a comma-separated list, such as http,ingest.

Supported values include: `_all`, `_none`, `settings`, `os`, `process`, `jvm`, `thread_pool`, `transport`, `http`, `remote_cluster_server`, `plugins`, `ingest`, `aggregations`, `indices`
  Values: `_all`, `_none`, `settings`, `os`, `process`, `jvm`, `thread_pool`, `transport`, `http`, `remote_cluster_server`, `plugins`, `ingest`, `aggregations`, `indices`

## Description

By default, the API returns all attributes and core settings for cluster nodes.

## Authentication

- Api key: `Authorization: <value>`
  Elasticsearch APIs support key-based authentication.
  You must create an API key and use the encoded value in the request header.
  For example:
  
  
  ```
  curl -X GET "${ES_URL}/_cat/indices?v=true" \
    -H "Authorization: ApiKey ${API_KEY}"
  ```
  
  To get API keys, use the `/_security/api_key` APIs.
- Basic: `Authorization: Basic <credentials>`
- Bearer: `Authorization: Bearer <token>`
  Elasticsearch APIs support the use of bearer tokens in the `Authorization` HTTP header to authenticate with the API.
  For examples, refer to [Token-based authentication services](https://www.elastic.co/docs/deploy-manage/users-roles/cluster-or-deployment-auth/token-based-authentication-services)

## Query string parameters

- `flat_settings` (boolean · default: false) — optional
  If true, returns settings in flat format.
- `timeout` (string · default: 30s) — optional
  Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.

## Response

`application/json`

- `_nodes` (object)
  Contains statistics about the number of nodes selected by the request’s node filters.
  - `failures` (object[])
    - `type` (string)
      The type of error
    - `reason` (union string) — nullable
      A human-readable explanation of the error, in English.
      One of: `string`
    - `stack_trace` (string)
      The server stack trace. Present only if the `error_trace=true` parameter was sent with the request.
    - `caused_by` (object) — recursive
      Same fields as `failures` in `_nodes`
    - `root_cause` (object[]) — recursive
      Same fields as `failures` in `_nodes`
    - `suppressed` (object[]) — recursive
      Same fields as `failures` in `_nodes`
  - `total` (number)
    Total number of nodes selected by the request.
  - `successful` (number)
    Number of nodes that responded successfully to the request.
  - `failed` (number)
    Number of nodes that rejected the request or failed to respond. If this value is not 0, a reason for the rejection or failure is included in the response.
- `cluster_name` (string)
- `nodes` (map string to object)
  Map values (object)
  - `attributes` (map string to string)
  - `build_flavor` (string)
  - `build_hash` (string)
    Short hash of the last git commit in this release.
  - `build_type` (string)
  - `component_versions` (map string to number)
  - `host` (string)
    The node’s host name.
  - `http` (object)
    - `bound_address` (string[])
    - `max_content_length` (number | string)
    - `max_content_length_in_bytes` (number)
    - `publish_address` (string)
  - `index_version` (number)
  - `ip` (string)
    The node’s IP address.
  - `jvm` (object)
    - `gc_collectors` (string[])
    - `mem` (object)
      - `direct_max` (number | string)
      - `direct_max_in_bytes` (number)
      - `heap_init` (number | string)
      - `heap_init_in_bytes` (number)
      - `heap_max` (number | string)
      - `heap_max_in_bytes` (number)
      - `non_heap_init` (number | string)
      - `non_heap_init_in_bytes` (number)
      - `non_heap_max` (number | string)
      - `non_heap_max_in_bytes` (number)
    - `memory_pools` (string[])
    - `pid` (number)
    - `start_time_in_millis` (number)
    - `version` (string)
    - `vm_name` (string)
    - `vm_vendor` (string)
    - `vm_version` (string)
    - `using_bundled_jdk` (boolean)
    - `using_compressed_ordinary_object_pointers` (boolean | string)
    - `input_arguments` (string[])
  - `name` (string)
    The node's name
  - `os` (object)
    - `arch` (string)
      Name of the JVM architecture (ex: amd64, x86)
    - `available_processors` (number)
      Number of processors available to the Java virtual machine
    - `allocated_processors` (number)
      The number of processors actually used to calculate thread pool size. This number can be set with the node.processors setting of a node and defaults to the number of processors reported by the OS.
    - `name` (string)
      Name of the operating system (ex: Linux, Windows, Mac OS X)
    - `pretty_name` (string)
    - `refresh_interval_in_millis` (number)
      Refresh interval for the OS statistics
    - `version` (string)
      Version of the operating system
    - `cpu` (object)
      - `cache_size` (string)
      - `cache_size_in_bytes` (number)
      - `cores_per_socket` (number)
      - `mhz` (number)
      - `model` (string)
      - `total_cores` (number)
      - `total_sockets` (number)
      - `vendor` (string)
    - `mem` (object)
      - `total` (string)
      - `total_in_bytes` (number)
    - `swap` (object)
      - `total` (string)
      - `total_in_bytes` (number)
  - `plugins` (object[])
    - `classname` (string)
    - `description` (string)
    - `elasticsearch_version` (string)
    - `extended_plugins` (string[])
    - `has_native_controller` (boolean)
    - `java_version` (string)
    - `name` (string)
    - `version` (string)
    - `licensed` (boolean)
  - `process` (object)
    - `id` (number)
      Process identifier (PID)
    - `mlockall` (boolean)
      Indicates if the process address space has been successfully locked in memory
    - `refresh_interval_in_millis` (number)
      Refresh interval for the process statistics
  - `roles` (enum[])
    Values: `master`, `data`, `data_cold`, `data_content`, `data_frozen`, `data_hot`, `data_warm`, `client`, `ingest`, `ml`, `voting_only`, `transform`, `remote_cluster_client`, `coordinating_only`
  - `settings` (object)
    - `cluster` (object)
      - `name` (string)
      - `routing` (object)
        - `allocation` (object)
          - `enable` (enum)
            Values: `all`, `primaries`, `new_primaries`, `none`
          - `include` (object)
            - `_tier_preference` (string)
            - `_id` (string)
          - `initial_recovery` (object)
            - `_id` (string)
          - `disk` (object)
            - `threshold_enabled` (boolean | string)
        - `rebalance` (object)
          - `enable` (enum)
            Values: `all`, `primaries`, `replicas`, `none`
      - `election` (object)
        - `strategy` (string)
      - `initial_master_nodes` (union string[] | string)
      - `deprecation_indexing` (object)
        - `enabled` (boolean | string)
    - `node` (object)
      - `name` (string)
      - `attr` (map string to object)
      - `max_local_storage_nodes` (string)
    - `path` (object)
      - `logs` (string)
      - `home` (string)
      - `repo` (string[])
      - `data` (union string | string[])
    - `repositories` (object)
      - `url` (object)
        - `allowed_urls` (string)
    - `discovery` (object)
      - `seed_hosts` (union string[] | string)
      - `type` (string)
      - `seed_providers` (union string[] | string)
    - `action` (object)
      - `destructive_requires_name` (string)
    - `client` (object)
      - `type` (string)
    - `http` (object)
      - `type` (object)
        - `default` (string)
      - `type.default` (string)
      - `compression` (boolean | string)
      - `port` (number | string)
    - `bootstrap` (object)
      - `memory_lock` (string)
    - `transport` (object)
      - `type` (object)
        - `default` (string)
      - `type.default` (string)
      - `features` (object)
        - `x-pack` (string)
    - `network` (object)
      - `host` (union string | string[])
    - `xpack` (object)
      - `license` (object)
        - `self_generated` (object)
          - `type` (string)
      - `security` (object)
        - `http` (object)
          - `ssl` (map string to string)
        - `enabled` (string)
        - `transport` (object)
          - `ssl` (map string to string)
        - `authc` (object)
          - `realms` (object)
            - `file` (map string to object)
              Map values (object)
              - `enabled` (string)
              - `order` (string)
            - `native` (map string to object)
              Map values (object)
              - `enabled` (string)
              - `order` (string)
            - `pki` (map string to object)
              Map values (object)
              - `enabled` (string)
              - `order` (string)
          - `token` (object)
            - `enabled` (string)
      - `notification` (map string to object)
      - `ml` (object)
        - `use_auto_machine_memory_percent` (boolean)
    - `script` (object)
      - `allowed_types` (string)
      - `disable_max_compilations_rate` (string)
    - `search` (object)
      - `remote` (object)
        - `connect` (string)
    - `ingest` (object)
      - `attachment` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `append` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `csv` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `convert` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `date` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `date_index_name` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `dot_expander` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `enrich` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `fail` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `foreach` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `json` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `user_agent` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `kv` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `geoip` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `grok` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `gsub` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `join` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `lowercase` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `remove` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `rename` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `script` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `set` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `sort` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `split` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `trim` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `uppercase` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `urldecode` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `bytes` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `dissect` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `set_security_user` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `pipeline` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `drop` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `circle` (object)
        - `downloader` (object)
          - `enabled` (string)
      - `inference` (object)
        - `downloader` (object)
          - `enabled` (string)
  - `thread_pool` (map string to object)
    Map values (object)
    - `core` (number)
    - `keep_alive` (string)
    - `max` (number)
    - `queue_size` (number)
    - `size` (number)
    - `type` (string)
  - `total_indexing_buffer` (number)
    Total heap allowed to be used to hold recently indexed documents before they must be written to disk. This size is a shared pool across all shards on this node, and is controlled by Indexing Buffer settings.
  - `total_indexing_buffer_in_bytes` (number | string)
    Same as total_indexing_buffer, but expressed in bytes.
  - `transport` (object)
    - `bound_address` (string[])
    - `publish_address` (string)
    - `profiles` (map string to string)
  - `transport_address` (string)
    Host and port where transport HTTP connections are accepted.
  - `transport_version` (number)
  - `version` (string)
    Elasticsearch version running on this node.
  - `modules` (object[])
    - `classname` (string)
    - `description` (string)
    - `elasticsearch_version` (string)
    - `extended_plugins` (string[])
    - `has_native_controller` (boolean)
    - `java_version` (string)
    - `name` (string)
    - `version` (string)
    - `licensed` (boolean)
  - `ingest` (object)
    - `processors` (object[])
      - `type` (string)
  - `aggregations` (map string to object)
    Map values (object)
    - `types` (string[])
  - `remote_cluster_server` (object)
    - `bound_address` (string[])
    - `publish_address` (string)
## Code examples

#### Console

```console
GET _nodes/_all/jvm
```

#### JavaScript

```javascript
const response = await client.nodes.info({
  node_id: "_all",
  metric: "jvm",
});
```

#### Python

```python
resp = client.nodes.info(
    node_id="_all",
    metric="jvm",
)
```

#### curl

```curl
curl -X GET "$ELASTICSEARCH_URL/_nodes/_all/jvm" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY"
```

#### Java

```java
client.nodes().info(i -> i
    .metric(NodesInfoMetric.Jvm)
    .nodeId("_all")
);
```

#### C#

```c#
var response = await client.Nodes
    .InfoAsync(d1 => d1
        .Metric(NodesInfoMetric.Jvm)
        .NodeId("_all")
    );
```

#### PHP

```php
$resp = $client->nodes()->info([
    "node_id" => "_all",
    "metric" => "jvm",
]);
```

#### Ruby

```ruby
response = client.nodes.info(
  node_id: "_all",
  metric: "jvm"
)
```

## Response examples

#### Nodes info response example1

An abbreviated response when requesting cluster nodes information.

```json
{
    "_nodes": {},
    "cluster_name": "elasticsearch",
    "nodes": {
      "USpTGYaBSIKbgSUJR2Z9lg": {
        "name": "node-0",
        "transport_address": "192.168.17:9300",
        "host": "node-0.elastic.co",
        "ip": "192.168.17",
        "version": "{version}",
        "transport_version": 100000298,
        "index_version": 100000074,
        "component_versions": {
          "ml_config_version": 100000162,
          "transform_config_version": 100000096
        },
        "build_flavor": "default",
        "build_type": "{build_type}",
        "build_hash": "587409e",
        "roles": [
          "master",
          "data",
          "ingest"
        ],
        "attributes": {},
        "plugins": [
          {
            "name": "analysis-icu",
            "version": "{version}",
            "description": "The ICU Analysis plugin integrates Lucene ICU
  module into elasticsearch, adding ICU relates analysis components.",
            "classname":
  "org.elasticsearch.plugin.analysis.icu.AnalysisICUPlugin",
            "has_native_controller": false
          }
        ],
        "modules": [
          {
            "name": "lang-painless",
            "version": "{version}",
            "description": "An easy, safe and fast scripting language for
  Elasticsearch",
            "classname": "org.elasticsearch.painless.PainlessPlugin",
            "has_native_controller": false
          }
        ]
      }
    }
}
```

