Skip to content

User profiles bundle a set of default selectors, source overrides, and policy constraints that get applied to subsequent app requests. Use the endpoints on this page to list existing profiles, create new ones, update their configuration, select the active profile, or delete profiles that are no longer needed.

Returns every configured user profile with its default preferences and source overrides. Use this to discover available profiles before selecting one or composing a new configuration.

This endpoint takes no parameters.

Terminal window
curl https://api.hoody.com/api/v1/run/profiles \
-H "Authorization: Bearer <token>"

Creates a new user profile with default preferences and optional source overrides. The name field is required and must be unique. Returns the updated list of all profiles on success.

This endpoint takes no parameters.

Send a ProfileConfig object describing the new profile.

NameTypeRequiredDescription
namestringYesUnique profile name
descriptionstringNoHuman-readable profile description
defaultsobjectNoDefault selector values applied when the profile is active (see ProfileDefaults)
sources_modestringNoinherit starts from global sources, allowlist disables all sources first
sourcesarrayNoPer-source overrides (enable/disable/reprioritize). Default: []
policyobjectNoPolicy constraints for the profile (see PolicyConfig)
Terminal window
curl -X POST https://api.hoody.com/api/v1/run/profiles \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "workstation",
"description": "Linux GUI workstation",
"defaults": {
"os": "linux",
"kind": "gui",
"source": ["nix", "appimage"],
"pick": "first"
},
"sources_mode": "allowlist",
"policy": {
"require_verified": true,
"allow_redirect": true
}
}'

Sets the named profile as the currently active profile. Its defaults will be applied to all subsequent requests that do not explicitly override them.

POST /api/v1/run/profiles/{profile}/select

Section titled “POST /api/v1/run/profiles/{profile}/select”
NameInTypeRequiredDescription
profilepathstringYesProfile name to select
Terminal window
curl -X POST https://api.hoody.com/api/v1/run/profiles/default/select \
-H "Authorization: Bearer <token>"

Partially updates a profile configuration. Only the fields included in the request body are modified; omitted fields retain their current values.

NameInTypeRequiredDescription
profilepathstringYesProfile name

Send a JSON object containing the subset of ProfileConfig fields to update. The supported merge fields are description, defaults, sources_mode, and sources.

Terminal window
curl -X PATCH https://api.hoody.com/api/v1/run/profiles/workstation \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"description": "Linux GUI workstation (revised)",
"defaults": { "limit": 30 }
}'

Removes a profile by name. If the deleted profile was the selected profile, the active selection is cleared.

NameInTypeRequiredDescription
profilepathstringYesProfile name
Terminal window
curl -X DELETE https://api.hoody.com/api/v1/run/profiles/workstation \
-H "Authorization: Bearer <token>"