Files
homarr/docs/unraid-ui-project/unraid-api-research.md
Kaloyan Danchev e881ec6cb5
Some checks failed
Master CI / yarn_install_and_build (push) Has been cancelled
Add Unraid UI project documentation and research
- Complete Unraid WebGUI inventory (~100 pages documented)
- Unraid GraphQL API research and documentation
- Homarr architecture documentation
- Orchis GTK theme design tokens (TypeScript)
- Project README with implementation plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 07:44:52 +02:00

3.6 KiB

Unraid API Research (Live from XTRM-Unraid v7.2.3)

API: unraid-api v4.29.2 (NestJS + Apollo GraphQL)

Connection

  • HTTP: http://192.168.10.20/graphql
  • WebSocket: ws://192.168.10.20/graphql (graphql-ws protocol)
  • Unix socket: /var/run/unraid-api.sock
  • Auth: x-api-key header

GraphQL Queries

Query Description
info System info (cpu, memory, os, baseboard, devices, display, versions)
array Array state, capacity, disks, parities, caches, parity check status
disks / disk(id) Physical disks with SMART status, temp, serial
docker Containers (id, names, state, status, image, ports, autoStart) + networks
vms VMs (id, name, state)
shares Shares (name, free, used, size, include, exclude, cache, color)
notifications Notifications (title, subject, description, importance, type, timestamp)
vars Server variables (version, name, timezone, network, SMB/NFS settings)
services Running services (name, online, uptime, version)
flash Flash drive (guid, vendor, product)
registration License (type, state, keyFile, expiration)
network Network info (accessUrls)
server Server details (owner, guid, wanip, lanip, localurl, remoteurl)
connect Connect status (dynamicRemoteAccess, settings)
plugins Installed plugins (name, version)
logFiles / logFile(path) Log file listing and content
upsDevices / upsConfiguration UPS monitoring
apiKeys API key management
customization Theme + activation code
me / owner Current user / server owner

GraphQL Mutations

Mutation Description
array.setState Start/stop array
array.addDiskToArray / removeDiskFromArray Disk management
array.mountArrayDisk / unmountArrayDisk Mount/unmount
docker.start(id) / docker.stop(id) Container start/stop
vm.start/stop/pause/resume/forceStop/reboot/reset(id) VM power management
parityCheck.start/pause/resume/cancel Parity check control
notification.create/delete/archive/unread Notification CRUD
apiKey.create/update/delete API key management
customization.setTheme Theme switching
connectSignIn/SignOut Unraid Connect
setupRemoteAccess Remote access config

GraphQL Subscriptions (Real-time)

  • systemMetricsCpu / systemMetricsCpuTelemetry / systemMetricsMemory
  • arraySubscription / parityHistorySubscription
  • notificationAdded / notificationsOverview
  • logFile (live log streaming)
  • upsUpdates
  • ownerSubscription / serversSubscription

Enums

  • ArrayState: STARTED, STOPPED, NEW_ARRAY, RECON_DISK, DISABLE_DISK, etc.
  • ArrayDiskStatus: DISK_NP, DISK_OK, DISK_INVALID, DISK_WRONG, DISK_DSBL, etc.
  • ArrayDiskType: DATA, PARITY, FLASH, CACHE
  • ContainerState: RUNNING, EXITED
  • VmState: NOSTATE, RUNNING, IDLE, PAUSED, SHUTDOWN, SHUTOFF, CRASHED, PMSUSPENDED
  • DiskFsType: XFS, BTRFS, VFAT, ZFS, EXT4, NTFS
  • DiskInterfaceType: SAS, SATA, USB, PCIE, UNKNOWN
  • ThemeName: azure, black, gray, white

Legacy PHP/Nchan Endpoints

  • Nchan WebSocket channels: /sub/var, /sub/docker, /sub/update1-3, /sub/diskload, etc.
  • PHP includes: DashboardApps.php, Control.php, SmartInfo.php, Syslog.php, etc.
  • State INI files at /var/local/emhttp/: var.ini, disks.ini, shares.ini, etc.
  • Legacy control: POST to /update.htm for commands

NOT Available via GraphQL

  • Docker create/delete/restart/logs
  • VM create/delete
  • Share CRUD, User CRUD
  • Detailed SMART attributes
  • Disk format/clear, spin up/down
  • System reboot/shutdown
  • Mover operations