You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every operation payload carries systemRestartRequired: true when the operation succeeded but
the machine must be restarted before the change takes effect. See
Pending machine restarts.
Deletion verdicts are keyed by shortcut path and are re-applied whenever an upgrade recreates
the shortcut. Paths outside a Start Menu Programs directory, and paths that are not a .lnk
or .url shortcut, are rejected. reset-all forgets every verdict; the folder rules and the
relocations they recorded are left alone, and are managed by the folder endpoints below.
Method
Path
Auth
Parameters/body
CLI equivalent
GET
/uniget/v1/start-menu-shortcuts
Yes
None
start-menu shortcut list
POST
/uniget/v1/start-menu-shortcuts/set
Yes
Query path, status
start-menu shortcut set
POST
/uniget/v1/start-menu-shortcuts/reset
Yes
Query path
start-menu shortcut reset
POST
/uniget/v1/start-menu-shortcuts/reset-all
Yes
None
start-menu shortcut reset-all
Start Menu folders
A folder rule names the subfolder of the current user's Start Menu Programs directory where a
package should keep its shortcuts. UniGetUI re-applies it after every install and upgrade, and
deletes the relocated shortcuts when the package is uninstalled. package is the package
identity, manager\PackageId (for example winget\Python.Python.3.13); the manager segment is
lower-cased. folder must be a subfolder of that directory, so an absolute path, a .. segment
or the machine-wide directory is rejected. relocate-existing additionally moves the shortcuts
that already match the package, which are listed as matchingShortcuts so a caller can inspect
them first.
Method
Path
Auth
Parameters/body
CLI equivalent
GET
/uniget/v1/start-menu-folders
Yes
None
start-menu folder list
POST
/uniget/v1/start-menu-folders/set
Yes
Query package, folder, optional relocate-existing
start-menu folder set
POST
/uniget/v1/start-menu-folders/remove
Yes
Query package
start-menu folder remove
Logs
Method
Path
Auth
Parameters/body
CLI equivalent
GET
/uniget/v1/logs/app
Yes
Optional query level
log app
GET
/uniget/v1/logs/history
Yes
None
log operations
GET
/uniget/v1/logs/manager
Yes
Optional query manager, optional query verbose
log manager
Backups
Method
Path
Auth
Parameters/body
CLI equivalent
Notes
GET
/uniget/v1/backups/status
Yes
None
backup status
Includes local backup settings and GitHub auth state.
POST
/uniget/v1/backups/local/create
Yes
None
backup local create
Creates a local backup bundle.
POST
/uniget/v1/backups/github/sign-in/start
Yes
JSON body: GitHub device-flow start request body
backup github login start
Starts GitHub device flow.
POST
/uniget/v1/backups/github/sign-in/complete
Yes
None
backup github login complete
Completes device flow.
POST
/uniget/v1/backups/github/sign-out
Yes
None
backup github logout
Signs out of GitHub backup integration.
GET
/uniget/v1/backups/cloud
Yes
None
backup cloud list
Lists cloud backups.
POST
/uniget/v1/backups/cloud/create
Yes
None
backup cloud create
Uploads a cloud backup.
POST
/uniget/v1/backups/cloud/download
Yes
JSON body: cloud backup request body
backup cloud download
Downloads backup content.
POST
/uniget/v1/backups/cloud/restore
Yes
JSON body: cloud backup request body
backup cloud restore
Restores/imports a cloud backup.
Bundles
Method
Path
Auth
Parameters/body
CLI equivalent
GET
/uniget/v1/bundles
Yes
None
bundle get
POST
/uniget/v1/bundles/reset
Yes
None
bundle reset
POST
/uniget/v1/bundles/import
Yes
JSON body: bundle import request body
bundle import
POST
/uniget/v1/bundles/export
Yes
JSON body: bundle export request body
bundle export
POST
/uniget/v1/bundles/add
Yes
JSON body: bundle package request body
bundle add
POST
/uniget/v1/bundles/remove
Yes
JSON body: bundle package request body
bundle remove
POST
/uniget/v1/bundles/install
Yes
JSON body: bundle install request body
bundle install
Packages
Every package payload carries systemRestartPending: true when that package is one of the
packages this machine is waiting on a restart for. See
Pending machine restarts.
Requires OnUpgradeAllForManager handler to be wired.
Pending machine restarts
Some installers finish successfully but only take effect after the machine reboots (WinGet
0x8A150109/0x8A15010B, Chocolatey 3010/1641). UniGetUI records those packages and keeps the
record until the machine has actually rebooted — closing and reopening UniGetUI does not clear it.
These fields expose it, so a fleet tool can tell which machines are waiting on a restart and why:
Payload
Field
Meaning
GET /uniget/v1/app
systemRestartPending
The machine is waiting on a restart.
GET /uniget/v1/app
systemRestartPendingPackages
How many packages are waiting on it.
Operation payloads
systemRestartRequired
This operation succeeded but needs a restart.
Operation-history entries
systemRestartRequired
Same, for a finished operation.
Package payloads
systemRestartPending
This package is waiting on a restart.
Headless-specific limitations
In headless sessions:
POST /uniget/v1/app/show fails because there is no window to show.
POST /uniget/v1/app/navigate fails because there is no UI page stack to navigate.
POST /uniget/v1/packages/update-all fails unless a host wires OnUpgradeAll.
POST /uniget/v1/packages/update-manager fails unless a host wires OnUpgradeAllForManager.
These failures are intentional and surfaced as HTTP 400 with a descriptive message.
Practical testing tip
If you want to inspect the IPC API manually with generic tools such as curl, the easiest route is to start UniGetUI in TCP mode:
For authenticated endpoints, you must also supply the session token as the token query parameter. The built-in CLI and IpcClient resolve that automatically.