Skip to content
Hoody.com

The Agent Discovery endpoints expose the read-only hoody.list_realms and hoody.list_containers RPCs so a caller can pick a valid bind target for POST /sessions. Both routes are global-read and explicitly not part of Fleet management — they only return the rows the calling token can already see.

Returns the realms visible to the calling token, including blocked-state flags, so a caller can choose a bind target for POST /sessions.

NameInTypeRequiredDescription
pagequeryintegerNo1-based page number for pagination.
limitqueryintegerNoMaximum items per page (0 = no pagination).
X-Hoody-CwdheaderstringNoPer-request working-directory scope: the .hoody project layer / record cwd / tool+workflow cwd. Required by routes that resolve a cwd.
X-Hoody-Config-DirheaderstringNoPer-request --config-dir override selecting which on-disk .hoody install a stateless read/write resolves (HoodyPaths).
X-Hoody-ContainerheaderstringNoPer-request bound remote container (omitted = local). Rejected (400) on routes with no container dimension.
X-Hoody-RealmheaderstringNoPer-request realm selector: "global" or a 24-hex id (also accepted as ?realm=). Rejected (400 realm_scope_unsupported) on active-only / no-realm routes.
realmquerystringNoQuery-string alias of the X-Hoody-Realm header (read only when the header is absent): "global" or a 24-hex id. Rejected (400 realm_scope_unsupported) on active-only / no-realm routes.

This endpoint does not accept a request body.

{
"items": [
{
"id": "a1b2c3d4e5f60718293a4b5c",
"name": "default",
"active": true,
"blocked": false,
"createdAt": "2025-01-12T08:30:00.000Z"
},
{
"id": "f6e5d4c3b2a1091827364f5e",
"name": "staging",
"active": true,
"blocked": false,
"createdAt": "2025-02-04T14:11:22.000Z"
}
],
"meta": {
"total": 2,
"page": 1,
"limit": 20
}
}
Terminal window
curl -X GET "https://proj-alpha-ctr-77bb-agent-1.us-east-1.containers.hoody.icu/api/v1/agent/realms?page=1&limit=20" \
-H "X-Hoody-Realm: global"

Returns the containers in a realm (selected via ?realm= or X-Hoody-Realm) so a caller can pick a bind target.

NameInTypeRequiredDescription
pagequeryintegerNo1-based page number for pagination.
limitqueryintegerNoMaximum items per page (0 = no pagination).
X-Hoody-CwdheaderstringNoPer-request working-directory scope: the .hoody project layer / record cwd / tool+workflow cwd. Required by routes that resolve a cwd.
X-Hoody-Config-DirheaderstringNoPer-request --config-dir override selecting which on-disk .hoody install a stateless read/write resolves (HoodyPaths).
X-Hoody-ContainerheaderstringNoPer-request bound remote container (omitted = local). Rejected (400) on routes with no container dimension.
X-Hoody-RealmheaderstringNoPer-request realm selector: "global" or a 24-hex id (also accepted as ?realm=). Rejected (400 realm_scope_unsupported) on active-only / no-realm routes.
realmquerystringNoQuery-string alias of the X-Hoody-Realm header (read only when the header is absent): "global" or a 24-hex id. Rejected (400 realm_scope_unsupported) on active-only / no-realm routes.

This endpoint does not accept a request body.

{
"items": [
{
"id": "c0ffee0123456789abcdef01",
"name": "web-runtime",
"runtime": "incus",
"state": "running",
"realmId": "a1b2c3d4e5f60718293a4b5c"
},
{
"id": "102030405060708090a0b0c0",
"name": "worker-runtime",
"runtime": "incus",
"state": "running",
"realmId": "a1b2c3d4e5f60718293a4b5c"
}
],
"meta": {
"total": 2,
"page": 1,
"limit": 20
}
}
Terminal window
curl -X GET "https://proj-alpha-ctr-77bb-agent-1.us-east-1.containers.hoody.icu/api/v1/agent/containers?realm=a1b2c3d4e5f60718293a4b5c&page=1&limit=20" \
-H "X-Hoody-Realm: a1b2c3d4e5f60718293a4b5c"