List both appliances and agents. The fields config and shadow will be empty unless specified in the projection parameter. The query for the config or shadow must be at least one level deep - projection[0][0]=config won't work, but projection[0][0]=config&projection[0][1]=gateway will result in config.gateway being populated.
Requires nodes::read permission.
Reduces the response to a smaller set of fields. When omitted, all fields are returned (name, fqdn, online, cluster, lastip, last_connect, created_at, device, location, heartbeat, lifecycleState, disconnectTime, orderID, plus base fields).
When specified, the response contains only a fixed base set plus each explicitly requested field.
Base set (always present when any projection is specified): uid, state, type, tags, tgTags, tgrn, keys. Top-level requestable fields: name, fqdn, online, cluster, lastip, last_connect, created_at, device, location, heartbeat, lifecycleState, disconnectTime, orderID
IMPORTANT: shadow and config cannot be used as flat projection keys (e.g., projection[]=shadow or projection[]=config are rejected as too large). To retrieve data from these objects, you must use nested indexed projection (see below).
WARNING: Dot-notation strings do NOT work. projection[]=config.gateway.enabled silently returns an empty config: {} object. Do not use dot notation.
Nested projection uses indexed bracket notation where each projection entry has an outer index N and each path segment has an inner index M. To request config.gateway.enabled as entry 0 and shadow.reported["node-core.version"] as entry 1: projection[0][0]=config&projection[0][1]=gateway&projection[0][2]=enabled&projection[1][0]=shadow&projection[1][1]=reported&projection[1][2]=node-core.version
If using curl, use the -g flag to prevent brace expansion.
- Mock serverhttps://apidocs.trustgrid.io/_mock/node
- https://api.trustgrid.iohttps://api.trustgrid.io/node
curl -i -X GET \
'https://apidocs.trustgrid.io/_mock/node?cluster=string&tags=string&projection%5B%5D=string' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'OK
Node configuration. Each sub-key mirrors an individual PUT /node/{nodeID}/config/* endpoint. In direct single-node responses, this object contains the complete configuration. In list responses, config may be included when explicitly requested via projection; when returned that way, only the projected config fields are present.
AWS IoT Device Shadow — the node's desired and reported state store. reported is a flat key-value map updated by the node itself; desired holds pending configuration the node has not yet acknowledged (usually empty). Most fields in reported use dot-notation keys. Common reported keys: node-core.version (software version), memory (RAM in MB), storage (disk free in GB), cores (CPU count), dnsResolution ("healthy"/"unhealthy"), repoConnectivity ("true"/"false"), os.distro.id (e.g., "ubuntu"), ssh.local ("true"/"false"), profile.name, node.upgrade.state, features (object of enabled feature flags), nic.{name}.mac/mtu/speed/dhcp (NIC telemetry).
Fully qualified domain name, e.g., mynode.myorg.trustgrid.io. Omitted when projection[] is used without this field.
Last IP address observed when the node connected. Omitted when projection[] is used without this field.
Unix timestamp in milliseconds of the most recent control plane connection. Omitted when projection[] is used without this field.
Organization ID (UUID) that owns this node. Returned only by GET /node/{nodeID}.
Domain FQDN this node belongs to. Returned only by GET /node/{nodeID}.
Named cryptographic public keys used for node authentication and WireGuard tunneling. Keyed by purpose (e.g. wireguard, identity); values are opaque string-encoded public keys. Always returned but rarely needed directly.
Trustgrid Resource Name — a globally unique identifier for this node across the platform. Format: tgrn:tg::nodes:node/{uid}. Always returned.
Unix timestamp (seconds) when the node was registered. Omitted when projection[] is used without this field.
Hardware device information detected from the physical or virtual appliance. Omitted when projection[] is used without this field.
IP geolocation derived from the node's last observed IP address. Omitted when projection[] is used without this field.
Most recent heartbeat received from the node's control plane connection. Omitted when projection[] is used without this field.
Operational lifecycle state of the node. Omitted when projection[] is used without this field.
Unix timestamp (seconds) when the node last disconnected from the control plane. Omitted when projection[] is used without this field.
[ { "cluster": "mycluster.trustgrid.io", "config": { … }, "name": "mynode", "online": true, "shadow": { … }, "state": "ACTIVE", "tags": { … }, "type": "Agent", "uid": "19084f81-5668-41ee-adbe-295e4c65531a", "fqdn": "mynode.myorg.trustgrid.io", "lastip": "203.0.113.42", "last_connect": 0, "org": "aad89024-5927-4ebd-97e2-3cc605c1da5f", "domain": "myorg.trustgrid.io", "tgTags": { … }, "keys": { … }, "tgrn": "tgrn:tg::nodes:node/19084f81-5668-41ee-adbe-295e4c65531a", "created_at": 0, "device": { … }, "location": { … }, "heartbeat": { … }, "lifecycleState": "pre-production", "disconnectTime": 0, "orderID": "string" } ]