---
title: "List a cluster's nodes"
method: GET
path: "/v1/kubernetes/clusters/{id}/nodes"
tags: ["Kubernetes"]
---

# List a cluster's nodes

`GET /v1/kubernetes/clusters/{id}/nodes`

Needs clusters:read on an API key, or any organization role on a session.

## Path parameters

- `id` string, required

## Query parameters

- `limit` integer
- `cursor` string
- `nodePoolId` string

## Response `200`

Page of nodes

- KubernetesNodePage
  - `items` KubernetesNodeSummary[], required
    - `id` string, required
    - `kubernetesStatus` 'Ready' | 'NotReady' | 'Unknown' — The node's Ready condition, set once it joins.
    - `nodePoolId` string, required
    - `registrationStatus` 'registered' | 'joined', required — registered: the host is claimed and booting, not yet in the cluster. joined: the node joined the cluster.
  - `nextCursor` string — Opaque; pass back to continue. Absent means no more pages.

## Other responses

- `400` — The request is invalid
- `401` — Missing or invalid API key
- `403` — The caller is authenticated but may not do this. The caller's role or the API key's scope does not allow it, or the request targets another organization (FORBIDDEN, or NOT_A_MEMBER for a session), or the organization is suspended pending review (ORG_SUSPENDED) or has been deleted (ORG_DISABLED). A new API key or a wider scope clears neither of the last two; see [Account and balance refusals](https://docs.openrelay.inc/docs/errors#account-and-balance-refusals).
- `404` — Resource not found

## Changes

- **2026-10-03** `bcf63adad2c3` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openrelay/apis/openrelay-api/changes/v1/kubernetes/clusters/:id/nodes/get.md)

---

[API](https://skmtc.dev/openrelay/apis/openrelay-api.md) · [All operations](https://skmtc.dev/openrelay/apis/openrelay-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openrelay/apis/openrelay-api/revisions/bcf63adad2c3?raw)
