Skip to main content
Node Pools

List Nodes

List the live nodes of a node pool in node key order. Results are paginated.

A node is listed while its heartbeat is recent enough for it to receive actors. A page can hold fewer than limit nodes while pagination.cursor is still set. A namespace token needs a grant on node with list.

GET https://rivet.example.com/pools/{pool}/nodes

Examples

Authentication

Send the admin token, or a namespace token from Create Token whose grants cover the request, as a bearer token in the Authorization header. The x-rivet-token header is also accepted. Routes with a namespace query parameter use the default namespace when it is omitted. See Authentication.

Path Parameters

NameTypeRequiredDescription
poolstringYesName of the node pool. A DNS label of 1 to 63 lowercase letters, digits and hyphens.

Query Parameters

NameTypeRequiredDescription
namespacestringNoName of the namespace to operate in. Defaults to default.
limitintegerNoMaximum number of results to return, from 1 to 100. Defaults to 100.
cursorstringNoPagination cursor. Pass the pagination.cursor value from the previous response to fetch the next page.

Responses

200

A page of live nodes and a cursor for the next page.

FieldTypeDescription
nodesobject[]
nodes[].keystringNode key, unique within the pool.
nodes[].poolstringName of the node pool.
nodes[].namespacestringName of the namespace.
nodes[].datacenterstringDatacenter name.
nodes[].create_tsintegerWhen the node connected, in Unix milliseconds.
nodes[].last_ping_tsintegerWhen the node last sent a heartbeat, in Unix milliseconds.
nodes[].connectedbooleanWhether the node is connected.
nodes[].stoppingbooleanWhether the node is shutting down.
paginationobject
pagination.cursorstring | nullCursor for the next page, or null when there are no more results.
{
  "nodes": [
    {
      "key": "node-1",
      "pool": "default",
      "namespace": "my-namespace",
      "datacenter": "default",
      "create_ts": 1700000000000,
      "last_ping_ts": 1700000000000,
      "connected": false,
      "stopping": false
    }
  ],
  "pagination": {
    "cursor": null
  }
}

400

actor.invalid_limit: limit is not an integer from 1 to 100. actor.invalid_cursor: cursor is malformed. envoy.invalid_pool_name: the pool name is not valid. envoy.invalid_namespace_name: the namespace value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens.

FieldTypeDescription
groupstringError group, for example actor.
codestringError code within the group, for example not_found.
messagestringHuman-readable error message.
metadataanyExtra details. Only present on some errors raised while authenticating or authorizing the request.
{
  "group": "actor",
  "code": "invalid_limit",
  "message": "The actor listing limit must be an integer from 1 to 100."
}

401

auth.invalid_token: the request carries no token, or the token is not valid. auth.token_expired: the token has expired.

FieldTypeDescription
groupstringError group, for example actor.
codestringError code within the group, for example not_found.
messagestringHuman-readable error message.
metadataanyExtra details. Only present on some errors raised while authenticating or authorizing the request.
{
  "group": "auth",
  "code": "invalid_token",
  "message": "Authentication token is invalid."
}

403

auth.insufficient_permissions: the token’s grants do not cover this request.

FieldTypeDescription
groupstringError group, for example actor.
codestringError code within the group, for example not_found.
messagestringHuman-readable error message.
metadataanyExtra details. Only present on some errors raised while authenticating or authorizing the request.
{
  "group": "auth",
  "code": "insufficient_permissions",
  "message": "Insufficient permissions to access this resource."
}

404

namespace.not_found: the namespace does not exist.

FieldTypeDescription
groupstringError group, for example actor.
codestringError code within the group, for example not_found.
messagestringHuman-readable error message.
metadataanyExtra details. Only present on some errors raised while authenticating or authorizing the request.
{
  "group": "namespace",
  "code": "not_found",
  "message": "The namespace does not exist."
}

500

core.internal_error: an unexpected failure. Details are only logged on the server.

FieldTypeDescription
groupstringError group, for example actor.
codestringError code within the group, for example not_found.
messagestringHuman-readable error message.
metadataanyExtra details. Only present on some errors raised while authenticating or authorizing the request.
{
  "group": "core",
  "code": "internal_error",
  "message": "An internal error occurred"
}

503

auth.verification_unavailable: token verification keys are temporarily unavailable. Retry the request.

FieldTypeDescription
groupstringError group, for example actor.
codestringError code within the group, for example not_found.
messagestringHuman-readable error message.
metadataanyExtra details. Only present on some errors raised while authenticating or authorizing the request.
{
  "group": "auth",
  "code": "verification_unavailable",
  "message": "The server could not verify the authentication token because verification keys are temporarily unavailable. Retry the request."
}