Browse the merged model catalogue, inspect LLM providers, and manage provider credentials — stored API keys, OAuth logins, and pooled OAuth accounts. All endpoints return secret-free summaries; stored credentials are never echoed back.
List models.
Lists the merged model catalogue: every catalogued provider model (spec, display name, context window, output limit, reasoning flag, display prices) AND every selectable fusion composite (spec beginning with fusion/<slug>). Each entry carries source:"provider" or source:"fusion" so a caller can tell them apart. A composite’s context_window is the minimum across its catalogued members and it carries no per-token price. Only selectable composites appear (a broken one is excluded). Fusion composites are cwd/config_dir scoped; X-Hoody-Cwd and X-Hoody-Config-Dir are honored to resolve them.
Name In Type Required Description pagequery integer No 1-based page number for pagination. limitquery integer No Maximum items per page (0 = no pagination). X-Hoody-Cwdheader string No Per-request working-directory scope: the .hoody project layer / record cwd / tool+workflow cwd. X-Hoody-Config-Dirheader string No Per-request --config-dir override selecting which on-disk .hoody install a stateless read/write resolves. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector: "global" or a 24-hex id. realmquery string No Per-request realm selector — the query alias of the X-Hoody-Realm header (read only when the header is absent).
curl -sS https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/models
await client . agent . models . listModelsIterator ()
" spec " : " anthropic/claude-opus-4-8 " ,
" display_name " : " Claude Opus 4.8 " ,
" context_window " : 200000 ,
" input_price_usd_per_million " : 15.0 ,
" output_price_usd_per_million " : 75.0
" spec " : " fusion/opus-with-sonnet-arbiter " ,
" context_window " : 200000 ,
" anthropic/claude-opus-4-8 " ,
" anthropic/claude-sonnet-4-5 "
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy, not by connecting to the container directly.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor the Retry-After header and retry; reduce the request rate.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Get a model by spec.
Returns one catalogued model by its full spec (for example anthropic/claude-opus-4-8), OR a fusion composite by its fusion/<slug> spec. The spec contains a slash; pass it URL-encoded or use the SDK helper.
Name In Type Required Description specpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/models/anthropic%2Fclaude-opus-4-8
await client . agent . models . getModel ( " anthropic/claude-opus-4-8 " )
" spec " : " anthropic/claude-opus-4-8 " ,
" display_name " : " Claude Opus 4.8 " ,
" context_window " : 200000 ,
" input_price_usd_per_million " : 15.0 ,
" output_price_usd_per_million " : 75.0 ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the spec.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
List LLM providers.
Lists every catalogued LLM provider (id, display name, model prefix, wire format, model count) from the merged providers.json catalogue.
Name In Type Required Description pagequery integer No 1-based page number for pagination. limitquery integer No Maximum items per page (0 = no pagination). X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers
await client . agent . models . listProvidersIterator ()
" display_name " : " Anthropic " ,
" model_prefix " : " anthropic/ " ,
" wire_format " : " anthropic_messages " ,
" display_name " : " OpenAI " ,
" model_prefix " : " openai/ " ,
" wire_format " : " openai_chat " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Get a provider.
Returns one provider’s metadata plus its full catalogued model list.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/anthropic
await client . agent . models . getProvider ( " anthropic " )
" display_name " : " Anthropic " ,
" model_prefix " : " anthropic/ " ,
" wire_format " : " anthropic_messages " ,
" spec " : " anthropic/claude-opus-4-8 " ,
" display_name " : " Claude Opus 4.8 " ,
" context_window " : 200000 ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Get a provider’s auth status.
Reports a provider’s stored-credential state — whether an API key or OAuth login is stored, the effective default method, the passwordless (no-auth) flag, and the secret-free OAuth account pool. Any stored API key is surfaced as a 10-character prefix only; the full key is never returned.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/anthropic/auth
await client . agent . models . getProviderAuth ( " anthropic " )
" api_key_prefix " : " sk-ant-api3 " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Start a provider OAuth login.
Begins an interactive OAuth login and returns {job_id, verification_uri, user_code?}. Drive the flow with GET .../oauth/{job} (poll) and, for a manual or PKCE code, POST .../oauth/{job}/code (submit). The job carries only the non-secret verification URL and user code — never a token.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
Field Type Required Description add_accountboolean No When true, the login ADDS to the provider’s OAuth account pool instead of replacing the primary login.
curl -sS -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/oauth \
-H " Content-Type: application/json " \
await client . agent . models . startProviderOAuth ( " github " , {})
" job_id " : " oaj_3f4b1c9d7e2a8f60 " ,
" verification_uri " : " https://github.com/login/device " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability so its own gate allows forwarded HTTP requests. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id. job_not_foundJob not found The referenced OAuth login job does not exist or has expired. Restart the flow with POST /providers/{id}/auth/oauth and drive the new job id.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB).
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Poll a provider OAuth login.
Polls an in-flight OAuth login job. Reports state:"pending" until the user authorizes, then state:"complete" (with the now-current secret-free auth status) or state:"error" (with a scrubbed error message).
Caution
A failed login is reported under the 200 body’s state:"error", NOT as an HTTP error. Clients MUST inspect state (pending | complete | error), never the HTTP status, to decide success.
Name In Type Required Description idpath string Yes Path identifier. jobpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/oauth/oaj_3f4b1c9d7e2a8f60
await client . agent . models . pollProviderOAuth ( " github " , " oaj_3f4b1c9d7e2a8f60 " )
" verification_uri " : " https://github.com/login/device " ,
" user_code " : " WDJB-MJHT " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " no such OAuth job (it may have expired) "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier. job_not_foundJob not found The referenced OAuth login job does not exist or has expired. Restart the flow with POST /providers/{id}/auth/oauth.
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Submit a provider OAuth authorization code.
Supplies the authorization code (or full redirect URL) a blocked OAuth flow is waiting for. Idempotent-safe: a second submit on an already-fed job is a no-op (submitted:false).
Name In Type Required Description idpath string Yes Path identifier. jobpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
Field Type Required Description codestring Yes The authorization code (or the full redirect URL) to complete the exchange.
curl -sS -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/oauth/oaj_3f4b1c9d7e2a8f60/code \
-H " Content-Type: application/json " \
-d ' {"code":"https://github.com/callback?code=abc123&state=xyz"} '
await client . agent . models . submitProviderOAuthCode ( " github " , " oaj_3f4b1c9d7e2a8f60 " , {
code : " https://github.com/callback?code=abc123&state=xyz "
" message " : " code accepted; exchange in progress "
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " no such OAuth job (it may have expired) "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier. job_not_foundJob not found The referenced OAuth login job does not exist or has expired. Restart the flow with POST /providers/{id}/auth/oauth.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB).
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Remove a provider’s OAuth login.
Removes a provider’s stored OAuth credentials. Idempotent. Returns the resulting secret-free auth status.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS -X DELETE https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/oauth
await client . agent . models . logoutProviderOAuth ( " github " )
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id. job_not_foundJob not found The referenced OAuth login job does not exist or has expired. Restart the flow with POST /providers/{id}/auth/oauth.
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
List a provider’s OAuth account pool.
Lists the secret-free OAuth account pool for a provider: key, label, active flag, cooldown — never a token.
Name In Type Required Description idpath string Yes Path identifier. pagequery integer No 1-based page number for pagination. limitquery integer No Maximum items per page (0 = no pagination). X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/accounts
await client . agent . models . listProviderAccountsIterator ( " github " )
" label " : " Personal GitHub " ,
" cooldown_until " : " 2025-01-15T12:00:00Z "
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
Add an OAuth account to a provider’s pool.
Begins an OAuth login that ADDS to the provider’s account pool. Returns a {job_id}; drive it with the same poll/submit endpoints as startProviderOAuth.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/accounts \
-H " Content-Type: application/json " \
await client . agent . models . addProviderAccount ( " github " , {})
" job_id " : " oaj_8a2c4d6e1f90b375 " ,
" verification_uri " : " https://github.com/login/device " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id. job_not_foundJob not found The referenced OAuth login job does not exist or has expired. Restart the flow with POST /providers/{id}/auth/oauth.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB).
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Make a pooled OAuth account active.
Makes one pooled OAuth account active for a provider. The {key} path value names the account; the trailing /active sub-resource names the activation verb. Returns the resulting secret-free account pool.
Name In Type Required Description idpath string Yes Path identifier. keypath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS -X PUT https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/accounts/work-b/active \
-H " Content-Type: application/json " \
await client . agent . models . setProviderAccountActive ( " github " , " work-b " , {})
" label " : " Personal GitHub " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id and account key.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB).
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Remove a pooled OAuth account.
Drops one pooled OAuth account for a provider. The {key} path value names the account. Returns the resulting secret-free account pool.
Name In Type Required Description idpath string Yes Path identifier. keypath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS -X DELETE https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/github/auth/accounts/work-b
await client . agent . models . removeProviderAccount ( " github " , " work-b " )
" label " : " Personal GitHub " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id and account key.
" code " : " oauth_unsupported " ,
" message " : " provider does not support OAuth login "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Store a provider API key.
Stores a provider’s API key in the 0600-atomic ~/.hoody/.env keychainless store. The reply carries only the secret-free auth status (10-character prefix); the full key is never returned.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
Field Type Required Description api_keystring Yes The provider API key. Stored in the 0600 ~/.hoody/.env store; the reply echoes only a prefix.
curl -sS -X PUT https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/anthropic/auth/api-key \
-H " Content-Type: application/json " \
-d ' {"api_key":"sk-ant-api03-XXXXX-REDACTED-XXXXX"} '
await client . agent . models . setProviderAPIKey ( " anthropic " , {
api_key : " sk-ant-api03-XXXXX-REDACTED-XXXXX "
" api_key_prefix " : " sk-ant-api3 " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB).
" code " : " auth_method_unsupported " ,
" message " : " provider is passwordless (no API key method) "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth. auth_method_unsupportedAuth method unsupported The requested credential method is not available for this provider. Pick a method the provider supports; a passwordless provider needs no default. credential_not_storedCredential not stored The default method cannot be promoted because no credential of that kind is stored. Store the credential first, then set the default.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Delete a provider API key.
Removes a provider’s stored API key and its default-method marker. Idempotent. Returns the resulting secret-free auth status.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
curl -sS -X DELETE https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/anthropic/auth/api-key
await client . agent . models . deleteProviderAPIKey ( " anthropic " )
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id.
" code " : " auth_method_unsupported " ,
" message " : " provider is passwordless (no API key method) "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth. auth_method_unsupportedAuth method unsupported The requested credential method is not available for this provider. Pick a method the provider supports; a passwordless provider needs no default. credential_not_storedCredential not stored The default method cannot be promoted because no credential of that kind is stored. Store the credential first, then set the default.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Set a provider’s default credential method.
Sets the effective default credential method for a provider — api_key or oauth. The daemon validates the method against the provider’s capabilities AND that a credential of that kind is actually stored.
Name In Type Required Description idpath string Yes Path identifier. X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container. X-Hoody-Realmheader string No Per-request realm selector. realmquery string No Per-request realm selector (query alias).
Field Type Required Description defaultstring Yes The default method: "api_key" or "oauth". Must be a method the provider supports AND has a stored credential for.
curl -sS -X PUT https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/providers/anthropic/auth/default \
-H " Content-Type: application/json " \
-d ' {"default":"api_key"} '
await client . agent . models . setProviderDefault ( " anthropic " , {
" api_key_prefix " : " sk-ant-api3 " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the provider id.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB).
" code " : " credential_not_stored " ,
" message " : " no API key is stored for this provider "
Error Code Title Description Resolution oauth_unsupportedOAuth not supported The provider has no OAuth login flow. Use an API key for this provider, or pick a provider that supports OAuth. auth_method_unsupportedAuth method unsupported The requested credential method is not available for this provider. Pick a method the provider supports; a passwordless provider needs no default. credential_not_storedCredential not stored The default method cannot be promoted because no credential of that kind is stored. Store the credential first, then set the default.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.