Elastic Stack (ELK Stack) Cluster API

The cluster API from Elastic Stack (ELK Stack) — 35 operation(s) for cluster.

Operations 40

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /_cluster/allocation/explain Explain why a shard is unassigned or placed · Explain the shard allocations #
Ask an LLM
“Why is one of my Elasticsearch shards stuck unassigned?”
“Can I ask the cluster to explain the allocation decision for a specific shard using query-string parameters?”
Tell an agent
Explain why shard {shard} of index {index} is not allocated, passing the details as query parameters.
Using a GET request, tell me why the first unassigned shard in the cluster can't be placed.
POST /_cluster/allocation/explain Explain a shard allocation with a request body · Explain the shard allocations #
Ask an LLM
“How do I send the index and shard number in a JSON body to get an allocation explanation?”
“Can I find out why a replica shard is sitting on node X instead of moving elsewhere?”
Tell an agent
POST an allocation explain for index {index}, shard {shard}, primary {primary}, with the values in the body.
Explain why the shard currently on node {current_node} is staying there, sending it in the request body.
POST /_cluster/voting_config_exclusions Exclude master nodes from voting · Update voting configuration exclusions #
Ask an LLM
“How do I safely remove master-eligible nodes from the voting configuration before shutting them down?”
“Can I exclude a master node from voting by its node name rather than its ID?”
Tell an agent
Add nodes {node_names} to the voting configuration exclusions.
Exclude master-eligible node ID {node_ids} from cluster voting before I decommission it.
DELETE /_cluster/voting_config_exclusions Clear the voting configuration exclusion list · Clear cluster voting config exclusions #
Ask an LLM
“How do I clear the voting exclusions after I've finished removing master nodes?”
“Can I clear voting exclusions without waiting for the excluded nodes to leave the cluster?”
Tell an agent destructive · confirm first
Clear all voting configuration exclusions on the cluster.
Remove the voting exclusions with wait_for_removal set to {wait_for_removal}.
GET /_cluster/settings Get cluster-wide settings · Get cluster-wide settings #
Ask an LLM
“What persistent and transient settings have been set on my cluster?”
“Can I see the default values of cluster settings too, not just the ones I changed?”
Tell an agent
Show me the cluster settings that have been explicitly set.
Get cluster settings including defaults, in flat format {flat_settings}.
PUT /_cluster/settings Update dynamic cluster settings · Update the cluster settings #
Ask an LLM
“How do I change a dynamic cluster setting without restarting nodes?”
“What's the difference between persistent and transient cluster setting updates?”
Tell an agent
Apply persistent cluster settings {persistent}.
Set transient cluster settings {transient} on the running cluster.
GET /_cluster/health Check overall cluster health · Get the cluster health status #
Ask an LLM
“Is my Elasticsearch cluster green, yellow or red right now?”
“Can I wait until the whole cluster reaches yellow status before continuing a script?”
Tell an agent
Check the health status of the whole cluster.
Wait until the cluster reaches {wait_for_status} health, timing out after {timeout}.
GET /_cluster/health/{index} Check health of specific indices or data streams · Get the cluster health status #
Ask an LLM
“What's the health status of just one index or data stream rather than the whole cluster?”
“Can I get shard-level health for a particular index?”
Tell an agent
Check the health of index {index}.
Show shard-level health for data stream {index} with level {level}.
GET /_info/{target} Get cluster info for a chosen target · Get cluster info #
Ask an LLM
“How do I pull cluster info such as HTTP, ingest or script stats for a named target?”
“Which info targets can I request from the _info endpoint?”
Tell an agent
Get the cluster info for target {target}.
Fetch _info for the {target} section of the cluster.
GET /_cluster/pending_tasks List pending cluster-level tasks · Get the pending cluster tasks #
Ask an LLM
“Are there cluster state changes like index creation or mapping updates waiting to be applied?”
“Why do my mapping updates seem queued up on the master node?”
Tell an agent
List the pending cluster tasks queued on the master.
Show pending cluster tasks from the local node only, local={local}.
GET /_remote/info Get remote cluster connection info · Get remote cluster information #
Ask an LLM
“Which remote clusters are configured for cross-cluster search and are they connected?”
“Can I see the seed endpoints for each remote cluster alias?”
Tell an agent
Show me connection details for every configured remote cluster.
List remote cluster aliases and whether each is connected.
POST /_cluster/reroute Manually move or allocate shards · Reroute the cluster #
Ask an LLM
“How do I move a shard from one node to another by hand?”
“Can I retry shards that failed allocation too many times?”
Tell an agent
Reroute shards using commands {commands}.
Retry allocation of shards that previously failed, retry_failed={retry_failed}.
GET /_cluster/state Get the full cluster state · Get the cluster state #
Ask an LLM
“How do I dump the entire internal cluster state for debugging?”
“Can I wait for a particular cluster state metadata version before reading it?”
Tell an agent
Get the complete cluster state.
Fetch the full cluster state once metadata version {wait_for_metadata_version} is reached.
GET /_cluster/state/{metric} Get selected metrics of the cluster state · Get the cluster state #
Ask an LLM
“Can I pull only the routing table or metadata part of the cluster state?”
“How do I limit the cluster state response to certain metrics to keep it small?”
Tell an agent
Get only the {metric} section of the cluster state.
Show cluster state metric {metric} across all indices.
GET /_cluster/state/{metric}/{index} Get cluster state metrics for specific indices · Get the cluster state #
Ask an LLM
“What does the cluster state say about the routing of one particular index?”
“Can I filter cluster state metrics down to a list of indices?”
Tell an agent
Get cluster state metric {metric} for index {index}.
Show the {metric} part of the cluster state limited to indices {index}.
GET /_cluster/stats Get cluster-wide statistics · Get cluster statistics #
Ask an LLM
“How much storage and memory is my whole cluster using, and how many shards does it have?”
“Can cluster stats include figures from remote clusters too?”
Tell an agent
Give me the cluster-wide stats: shards, store size, JVM and node counts.
Get cluster stats including remote clusters, include_remotes={include_remotes}.
GET /_cluster/stats/nodes/{node_id} Get cluster statistics for selected nodes · Get cluster statistics #
Ask an LLM
“Can I compute cluster stats using only a subset of nodes, like the data nodes?”
“What are the cluster statistics restricted to one node filter?”
Tell an agent
Get cluster stats computed only from nodes {node_id}.
Show store size and JVM usage in cluster stats filtered to node filter {node_id}.
HEAD / Ping the cluster to see if it is up · Ping the cluster #
Ask an LLM
“Is my Elasticsearch cluster up and responding?”
“Can I do a lightweight liveness check without fetching a response body?”
Tell an agent
Ping the cluster to confirm it's running.
Send a HEAD request to check the cluster is reachable.
GET / Get basic cluster info from the root endpoint · Cluster info #
Ask an LLM
“What does hitting the root URL of my cluster return?”
“How can I confirm the cluster name from the root endpoint?”
Tell an agent
Call the root endpoint and show me the cluster's basic info.
Get the cluster name and version details from the root path.
DELETE /_nodes/{node_id}/_repositories_metering/{max_archive_version} Clear archived repository metering data · Clear the archived repositories metering #
Ask an LLM
“How do I clear old archived snapshot repository metering data from a node?”
“Can I delete repository metering archives up to a certain archive version?”
Tell an agent destructive · confirm first
Clear repositories metering archive on nodes {node_id} up to version {max_archive_version}.
Purge archived metering for node {node_id} through archive version {max_archive_version}.
GET /_nodes/{node_id}/_repositories_metering Get snapshot repository metering counters · Get cluster repositories metering #
Ask an LLM
“How many requests has each node made against my snapshot repositories?”
“Where can I get the repository metering counters to compute storage request costs?”
Tell an agent
Get repositories metering info for nodes {node_id}.
Show the snapshot repository request counters on node {node_id}.
GET /_nodes/hot_threads Get hot threads across all nodes · Get the hot threads for nodes #
Ask an LLM
“Which threads are burning CPU across my cluster right now?”
“Can I sample hot threads by wait or block time instead of CPU?”
Tell an agent
Show the top hot threads on every node.
Get the top {threads} hot threads of type {type} across the cluster.
GET /_nodes/{node_id}/hot_threads Get hot threads for specific nodes · Get the hot threads for nodes #
Ask an LLM
“What's making one particular node's CPU spike?”
“Can I get hot threads for a single node and skip idle threads?”
Tell an agent
Show hot threads on node {node_id}.
Sample hot threads on node {node_id} over interval {interval}.
GET /_nodes Get info about every node in the cluster · Get node information #
Ask an LLM
“What roles, versions and settings do all my cluster nodes have?”
“Which plugins are installed on the nodes in my cluster?”
Tell an agent
List information for all nodes in the cluster.
Get every node's attributes and core settings in flat format.
GET /_nodes/{node_id} Get info about specific nodes · Get node information #
Ask an LLM
“What version and roles does a particular node report?”
“How do I look up node information for one node by its ID or name?”
Tell an agent
Get node information for node {node_id}.
Show the settings and attributes of nodes {node_id}.
GET /_nodes/{metric} Get one category of info for all nodes · Get node information #
Ask an LLM
“Can I get just the JVM or OS section of node info for every node?”
“How do I limit node info to certain metrics like plugins or http?”
Tell an agent
Get the {metric} node info for all nodes.
Show only the {metric} section of node information across the cluster.
GET /_nodes/{node_id}/{metric} Get one category of info for specific nodes · Get node information #
Ask an LLM
“What JVM details does one specific node report in its node info?”
“Can I combine a node filter and a metric filter in one node info call?”
Tell an agent
Get the {metric} node info for node {node_id}.
Show node {node_id}'s {metric} information only.
POST /_nodes/reload_secure_settings Reload keystore secure settings on all nodes · Reload the keystore on nodes in the cluster #
Ask an LLM
“How do I apply changed keystore settings on every node without a restart?”
“Can I reload a password-protected keystore across the cluster?”
Tell an agent
Reload the secure settings keystore on all nodes.
Reload secure settings cluster-wide using keystore password {secure_settings_password}.
POST /_nodes/{node_id}/reload_secure_settings Reload keystore secure settings on chosen nodes · Reload the keystore on nodes in the cluster #
Ask an LLM
“Can I reload the keystore on just one node after editing it?”
“How do I refresh reloadable secure settings on a subset of nodes?”
Tell an agent
Reload secure settings on node {node_id}.
Reload the keystore on nodes {node_id} with password {secure_settings_password}.
GET /_nodes/stats Get statistics for all nodes · Get node statistics #
Ask an LLM
“How much heap, disk and CPU is each node in the cluster using?”
“Can I include segment file sizes in the node statistics?”
Tell an agent
Get the full statistics for every node in the cluster.
Show node stats for all nodes including fielddata for fields {fielddata_fields}.
GET /_nodes/{node_id}/stats Get statistics for specific nodes · Get node statistics #
Ask an LLM
“What are the resource statistics for a single node?”
“How do I get all stats for one node by name?”
Tell an agent
Get all node stats for node {node_id}.
Show heap and disk statistics for nodes {node_id}.
GET /_nodes/stats/{metric} Get one stats metric for all nodes · Get node statistics #
Ask an LLM
“Can I pull only JVM or indices stats for every node?”
“How do I limit node statistics to one metric like os or fs?”
Tell an agent
Get the {metric} node stats for all nodes.
Show only {metric} statistics across every node.
GET /_nodes/{node_id}/stats/{metric} Get one stats metric for specific nodes · Get node statistics #
Ask an LLM
“What are the JVM stats for one particular node?”
“Can I filter node stats by both node and metric in the same call?”
Tell an agent
Get {metric} stats for node {node_id}.
Show node {node_id}'s {metric} statistics only.
GET /_nodes/stats/{metric}/{index_metric} Get index-level node stats for all nodes · Get node statistics #
Ask an LLM
“How much memory are segments or the query cache using on each node?”
“Can I break down the indices metric of node stats into sub-metrics like fielddata?”
Tell an agent
Get {metric} node stats narrowed to index metric {index_metric} for all nodes.
Show the {index_metric} index statistics from every node's {metric} stats.
GET /_nodes/{node_id}/stats/{metric}/{index_metric} Get index-level stats for specific nodes · Get node statistics #
Ask an LLM
“How big is the query cache on one specific node?”
“Can I get a single index sub-metric for one node only?”
Tell an agent
Get {metric} stats with index metric {index_metric} for node {node_id}.
On node {node_id}, show the {index_metric} figures within its {metric} stats.
GET /_nodes/usage Get feature usage for all nodes · Get feature usage information #
Ask an LLM
“Which REST actions have my nodes been serving and how often?”
“Can I see feature usage counts across the whole cluster?”
Tell an agent
Get feature usage information for every node.
Show REST action usage counts cluster-wide.
GET /_nodes/{node_id}/usage Get feature usage for specific nodes · Get feature usage information #
Ask an LLM
“Which REST endpoints has a single node been handling?”
“How do I check feature usage on one node by ID?”
Tell an agent
Get feature usage for node {node_id}.
Show how often REST actions were used on nodes {node_id}.
GET /_nodes/usage/{metric} Get one usage metric for all nodes · Get feature usage information #
Ask an LLM
“Can I limit node usage output to only the rest_actions or aggregations metric?”
“What aggregation usage do my nodes report?”
Tell an agent
Get the {metric} usage metric for all nodes.
Show node usage restricted to {metric} across the cluster.
GET /_nodes/{node_id}/usage/{metric} Get one usage metric for specific nodes · Get feature usage information #
Ask an LLM
“What aggregation usage does one specific node report?”
“Can I filter usage by both a node and a metric at once?”
Tell an agent
Get the {metric} usage for node {node_id}.
Show node {node_id}'s feature usage limited to {metric}.
GET /_info Get general cluster information · Cluster information #
Ask an LLM
“What does the bare _info endpoint return about my cluster?”
“Can I get all cluster info sections without naming a target?”
Tell an agent
Call _info with no target and show everything it returns.
Get the untargeted cluster information summary.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/elk-stack:elk-stack-cluster-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

elk-stack-cluster-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Elk Stack Cluster API
  version: '1.0'
  description: 'Operations tagged cluster across 2 of this provider''s published API definitions: elk-stack-elasticsearch-openapi.json, elk-stack-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: http://localhost:9200
  description: Default local Elasticsearch endpoint
- url: https://{host}:{port}
  description: Self-hosted or Elastic Cloud cluster endpoint
  variables:
    host:
      default: localhost
    port:
      default: '9200'
tags:


# --- truncated at 32 KB (305 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elk-stack/refs/heads/main/openapi/elk-stack-cluster-api-openapi.yml