# getClusterNodes

> Lists every node visible in the cluster's gossip network, with its ports and client version.

Source: https://docs.constant-k.com/rpc/http/getclusternodes/

`getClusterNodes` returns one entry per node visible in gossip: identity pubkey, advertised gossip/TPU/RPC addresses, and client version and feature set. This includes every visible node, not only actively voting validators.

This is a fleet-wide call that serializes the whole node list on every request; `getVoteAccounts` covers active, staked validators only, at lower cost.

- Transport: HTTP, JSON-RPC 2.0 `POST` to `https://rpc-newyork.constant-k.com/?api-key=YOUR_API_KEY` (New York) or `https://rpc-frankfurt.constant-k.com/?api-key=YOUR_API_KEY` (Frankfurt) or `https://rpc-amsterdam.constant-k.com/?api-key=YOUR_API_KEY` (Amsterdam). The key also works as an `x-api-key` header.
- Category: Network & Cluster
- Availability: All plans
- Rate limits: Free 5/s · Operator 50/s · Blade Runner 200/s · Nexus 500/s

## Parameters

None.

## Result

- `result` (object[], optional): An array of contact-info objects, one per node visible in gossip.
  - `pubkey` (string, required): Node's identity public key, base-58 encoded.
  - `gossip` (string | null, optional): Gossip network address (`host:port`), or null if not advertised.
  - `tpu` (string | null, optional): TPU (transaction processing unit) address for UDP transactions, or null.
  - `tpuQuic` (string | null, optional): TPU address for QUIC transactions, or null.
  - `tpuForwards` (string | null, optional): TPU forwarding address for UDP, or null.
  - `tpuForwardsQuic` (string | null, optional): TPU forwarding address for QUIC, or null.
  - `rpc` (string | null, optional): JSON-RPC address, or null if the node does not serve RPC.
  - `pubsub` (string | null, optional): WebSocket PubSub address, or null if the node does not serve subscriptions.
  - `version` (string | null, optional): Client version string the node announced, or null if unknown.
  - `featureSet` (integer | null, optional): Feature-set identifier the node announced, or null if unknown.
  - `shredVersion` (integer | null, required): 16-bit shred version. Nodes with a mismatched shred version are on a different fork/hard-fork lineage and won't turbine shreds to each other.

## Example: List visible cluster nodes

Request:

```bash
curl "https://rpc-newyork.constant-k.com/?api-key=YOUR_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "getClusterNodes" }'
```

Response:

```json
{
  "jsonrpc": "2.0",
  "result": [
    {
      "pubkey": "GZKhZXnvyQRGfTd4S9HXrAbNfGWCWWqJR8okrRS97fp7",
      "gossip": "203.0.113.10:8001",
      "tpu": "203.0.113.10:8004",
      "tpuQuic": "203.0.113.10:8009",
      "tpuForwards": "203.0.113.10:8005",
      "tpuForwardsQuic": "203.0.113.10:8010",
      "rpc": "203.0.113.10:8899",
      "pubsub": "203.0.113.10:8900",
      "version": "4.3.0",
      "featureSet": 2409014235,
      "shredVersion": 50093
    },
    {
      "pubkey": "F5Y2dsMrDXe2uFMZnumUe1KrvYHk1NUCoqFWqGTydwmL",
      "gossip": "198.51.100.24:8001",
      "tpu": "198.51.100.24:8004",
      "tpuQuic": "198.51.100.24:8009",
      "tpuForwards": "198.51.100.24:8005",
      "tpuForwardsQuic": "198.51.100.24:8010",
      "rpc": null,
      "pubsub": null,
      "version": "4.2.1",
      "featureSet": 2409014235,
      "shredVersion": 50093
    }
  ],
  "id": 1
}
```

_Long arrays in this example were trimmed._

## Notes

- A full mainnet-beta response lists several thousand nodes and can be multi-megabyte; this example is trimmed to two entries.
- `rpc` and `pubsub` are `null` for the large majority of nodes: most cluster participants are validators that don't serve public RPC traffic at all.
- `shredVersion` identifies a node that has forked away from the expected cluster.

