---
title: "List the nodes linked to the signed-in account"
method: GET
path: "/api/nodes"
tags: ["nodes"]
---

# List the nodes linked to the signed-in account

`GET /api/nodes`

## Request

- Base URL: `https://app.nerdit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.nerdit.ai/api/nodes`
- Auth: none declared

Return the caller's active nodes with their live relay status.

Each row carries its ``link_state``, read in the same statement as the
row itself (:func:`~nerdit_cloud.nodes.issuance.active_nodes_with_link_state`).
The console used to derive that by joining this list against the open
codes, which cannot be right for a node whose code was consumed or
revoked — those are not open — and is a refresh behind even when it is.

## Response `200`

Successful Response

- NodesView: Every node the signed-in account still keeps linked.
  - `nodes` NodeView[], required
    - `id` string, uuid, required
    - `slug` string, required
    - `display_name` string, required
    - `online` boolean, required
    - `version` string, nullable, required
    - `uptime_s` number, nullable, required
    - `last_seen_at` string, date-time, nullable, required
    - `linked_at` string, date-time, required
    - `dashboard_url` string, required
    - `hosted_disabled` boolean, required
    - `link_state` 'pending' | 'claimed' | 'consumed' | 'linked' | 'expired', required
    - `dormancy_state` 'active' | 'warning' | 'escalated' | 'dormant', required
    - `power` 'asleep' | 'waking' | 'stuck', nullable, required
    - `ai_console` boolean
    - `ai_page_v2` boolean
    - `inbound_hooks` boolean

## Other responses

- `401`: Unauthorized

---

[API](https://skmtc.dev/nerdit/apis/nerdit-cloud-web.md) · [All operations](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/llms.txt) · [OpenAPI document](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/revisions/06e3b44b58be?raw)
