Skip to content
Hoody.com

Proxy aliases let you share a container using a custom, human-readable subdomain instead of the default project-and-container-id hostname. For example, you can share https://my-app.node-sg-sin-1.containers.hoody.icu/ instead of https://507f1f77bcf86cd799439033-507f1f77bcf86cd799439011.node-sg-sin-1.containers.hoody.icu/. Use the endpoints on this page to list, create, update, enable/disable, or delete proxy aliases scoped to your account.

GET /api/v1/proxy/aliases

List all proxy aliases for your account. Supports optional filtering by project, container, realm, enabled status, and expiration.

NameInTypeRequiredDescription
project_idquerystringNoFilter by project ID
container_idquerystringNoFilter by container ID
realm_idquerystringNoFilter by realm ID. Alternative to using realm subdomain in URL.
enabledquerystringNoFilter by enabled status. Allowed values: "true", "false".
expiredquerystringNoFilter by expiration. "true" = only expired, "false" = only non-expired. Allowed values: "true", "false".
Terminal window
curl -X GET "https://api.hoody.icu/api/v1/proxy/aliases?project_id=507f1f77bcf86cd799439033&enabled=true" \
-H "Authorization: Bearer <token>"

GET /api/v1/proxy/aliases/{id}

Retrieve detailed information about a specific proxy alias, including the associated project and container.

NameInTypeRequiredDescription
idpathstringYesProxy alias ID
Terminal window
curl -X GET "https://api.hoody.icu/api/v1/proxy/aliases/507f1f77bcf86cd799439022" \
-H "Authorization: Bearer <token>"

POST /api/v1/proxy/aliases

Create a custom domain alias for a container. Provide either a custom alias (3–61 chars, lowercase letters, digits, and hyphens only, cannot start or end with a hyphen) or set alias to null / false to let the system auto-generate a 48-character hex string for maximum obscurity.

FieldTypeRequiredDefaultDescription
container_idstringYesContainer ID that this alias points to. You must own this container.
aliasstring | null | booleanNoCustom alias name (a-z, 0-9, hyphens only, 3-61 chars, cannot start/end with hyphen) OR null / false for an auto-generated 48-char hex.
programstringYesBuilt-in Hoody program ("terminal", "files", "code", "browser", "agent", "display", …) or transport protocol ("http", "https", "ssh"). For an HTTP server you run inside the container, use program: "http" (or "https" for TLS) with the port field.
portintegerNoTarget port for "http" / "https" (1–65535). Takes precedence over index and over any port embedded in the program string ("http-3000"). Ignored for built-in Hoody programs.
indexintegerNoInstance index, or legacy target port for "http" / "https". Defaults to 1. For a built-in program it selects which running instance to route to.
target_pathstring | nullNoBase path for routing. Auto-prefixed with / if missing. Max 2048 chars. Pass null for no path prefix.
allow_path_overridebooleanNotrueWhether to allow paths beyond target_path. If false, only the exact target_path is accessible.
expires_atstring | nullNoOptional ISO 8601 expiration date. Alias will be automatically disabled after this date. Pass null for no expiration.
enabledbooleanNotrueWhether the alias is initially enabled.
Terminal window
curl -X POST "https://api.hoody.icu/api/v1/proxy/aliases" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"container_id": "507f1f77bcf86cd799439011",
"alias": "my-app",
"program": "http",
"port": 3000,
"target_path": null,
"allow_path_override": true
}'

PATCH /api/v1/proxy/aliases/{id}

Update an existing proxy alias. Only provided fields will be updated. Renaming an alias renames the file on the server.

NameInTypeRequiredDescription
idpathstringYesProxy alias ID to update
FieldTypeRequiredDescription
aliasstringNoNew alias name. Must satisfy the same format and uniqueness rules as creation.
programstringNoProgram or protocol the alias targets.
portintegerNoTarget port for "http" / "https" (1–65535). Preferred over index.
indexintegerNoInstance index, or legacy target port when program is "http" / "https".
target_pathstring | nullNoBase path for routing. Set to null to remove the path prefix. Max 2048 chars.
allow_path_overridebooleanNoWhether to allow paths beyond target_path.
expires_atstring | number | nullNoExpiration date (ISO string, Unix timestamp in seconds/ms, or null to remove expiration).
enabledbooleanNoWhether the alias is enabled.
Terminal window
curl -X PATCH "https://api.hoody.icu/api/v1/proxy/aliases/507f1f77bcf86cd799439022" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"program": "http",
"port": 8080,
"target_path": "/v2"
}'

PATCH /api/v1/proxy/aliases/{id}/state

Temporarily enable or disable a proxy alias without deleting it. Disabled aliases return 404 at their URL but can be re-enabled later.

NameInTypeRequiredDescription
idpathstringYesProxy alias ID
FieldTypeRequiredDescription
enabledbooleanYesSet to true to enable, false to disable.
Terminal window
curl -X PATCH "https://api.hoody.icu/api/v1/proxy/aliases/507f1f77bcf86cd799439022/state" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "enabled": false }'

DELETE /api/v1/proxy/aliases/{id}

Permanently delete a proxy alias and remove its file from the server. The alias URL will immediately return 404.

NameInTypeRequiredDescription
idpathstringYesProxy alias ID to delete
Terminal window
curl -X DELETE "https://api.hoody.icu/api/v1/proxy/aliases/507f1f77bcf86cd799439022" \
-H "Authorization: Bearer <token>"