Skip to content

The Discovery endpoints let an agent enumerate the realms and containers it is allowed to bind to before opening a session. Both are read-only, global-read operations — they are not part of Fleet management, and they exist solely to help a caller pick a valid target for POST /api/v1/agent/sessions.

Lists the realms visible to the calling token (wrapper for hoody.list_realms), each annotated with active / blocked flags so the caller can pick a valid bind target.

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

This endpoint accepts no request body.

const page = await client.agent.discovery.listRealmsIterator({
page: 1,
limit: 50,
});
{
"items": [
{
"id": "5f1b2c3d4e5f6a7b8c9d0e1f",
"name": "production-eu",
"active": true,
"blocked": false,
"createdAt": "2025-08-12T09:14:22Z"
},
{
"id": "a1b2c3d4e5f6a7b8c9d0e1f2",
"name": "staging-us",
"active": true,
"blocked": false,
"createdAt": "2025-09-03T17:02:11Z"
}
],
"meta": {
"total": 2,
"page": 1,
"limit": 50
}
}
FieldTypeDescription
itemsarrayThe page of realms; each element is the forwarded daemon row’s own shape.
metaobjectPagination metadata.
meta.totalintegerTotal number of items across all pages.
meta.pageinteger1-based page number (present only when limit > 0).
meta.limitintegerItems per page (present only when limit > 0).

Lists the containers inside a selected realm (wrapper for hoody.list_containers) so a caller can pick a bind target. The realm is selected with ?realm=<id> (or the X-Hoody-Realm header). global-read; read-only — not part of Fleet management.

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

This endpoint accepts no request body.

const page = await client.agent.discovery.listContainersIterator({
realm: "5f1b2c3d4e5f6a7b8c9d0e1f",
page: 1,
limit: 50,
});
{
"items": [
{
"id": "c1d2e3f4a5b6c7d8e9f0a1b2",
"name": "api-gateway-01",
"realmId": "5f1b2c3d4e5f6a7b8c9d0e1f",
"status": "running",
"bound": false
},
{
"id": "d2e3f4a5b6c7d8e9f0a1b2c3",
"name": "worker-03",
"realmId": "5f1b2c3d4e5f6a7b8c9d0e1f",
"status": "running",
"bound": true
}
],
"meta": {
"total": 2,
"page": 1,
"limit": 50
}
}
FieldTypeDescription
itemsarrayThe page of containers; each element is the forwarded daemon row’s own shape.
metaobjectPagination metadata.
meta.totalintegerTotal number of items across all pages.
meta.pageinteger1-based page number (present only when limit > 0).
meta.limitintegerItems per page (present only when limit > 0).