Read which surfaces, limits, and posture this gateway has
const url = 'https://example.com/v1/capabilities';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/v1/capabilities \ --header 'Authorization: Bearer <token>'Reports which route families this deployment mounted, the limits it enforces, and the mode it is running in.
RegisterRoutes mounts whole families conditionally, so a gateway with no credential service answers GET /v1/credentials with 404 — the same status as a mistyped path and as a missing resource. Without this endpoint a client cannot tell those apart, and either renders an affordance that cannot work or invents an explanation for the 404.
Posture reports modes, never values (invariant #9): which kind of store, whether a KMS key was supplied — never the DSN, never the key. Authenticated like every route that is not /healthz or /version: the answer is the same for every caller, but an unauthenticated deployment inventory is a reconnaissance gift.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”This gateway’s capabilities.
Which surfaces this gateway mounted, the limits it enforces, and its posture.
object
Which route families are mounted. Agents are unconditional and have no field. A false here is why a route answers 404.
object
Whether MCP tools/call requires a verified Reason authorization envelope.
The server-side bounds a client must respect, from the same constants the handlers enforce.
object
How this deployment is running. Modes only — never a DSN, a key, or an address.
object
memory is the non-durable dev-only store: everything registered is lost on restart.
False when ZERKER_KMS_KEY was unset and an ephemeral key was generated at boot — every credential stored under it stops decrypting at the next restart.
Whether a Treeship emitter is attached to this deployment.
The actor URI receipts are signed as; empty when receipts are off.
Whether settle-then-forward is wired. A tenant with a facilitator configured still cannot settle without it.
Example
{ "posture": { "store": "postgres" }}Missing or invalid bearer token, or the token’s tenant/user claims are absent. No body.