Skip to main content

API reference

The HTTP API behind the homebutler web dashboard. homebutler serve starts it, and every route on this page is the same one the dashboard calls, so anything the dashboard shows or does you can read or run from a script.

Reads answer without a token when the server starts without one. Routes that change something exist only when the server starts with a token. Without a token those routes are not registered at all and answer 404, not 401.

Every error is a JSON object with one field: {"error": "<message>"}.

Base URL​

http://localhost:8080

Authentication​

  • bearerAuth: send Authorization: Bearer <token>. The token you start the server with: homebutler serve --token <token>, or web.token in the config file. Send it as Authorization: Bearer <token>. When the server has a token, every /api/ route except the CORS preflight requires it, reads included. Each endpoint's page says whether it needs this.

OpenAPI specification​

Download the full spec to import into Postman or Insomnia, generate a client, or give to an AI tool: openapi.yaml.

Endpoints​

Overview and servers​

Read the machine homebutler runs on, and the servers in your configuration.

Endpoint
GET/api/overviewGet overview
GET/api/serversList servers
GET/api/servers/{name}/statusGet server status
GET/api/statusGet system status
GET/api/processesList top processes
GET/api/portsList open ports

Report and doctor​

Compare the machine with its last saved snapshot, and check it for problems.

Endpoint
GET/api/reportGet report
POST/api/report/snapshotSave report snapshot
GET/api/doctorRun doctor

Docker​

List containers and their usage, and restart or stop a container.

Endpoint
GET/api/dockerList containers
GET/api/docker/statsGet container stats
POST/api/docker/{name}/restartRestart container
POST/api/docker/{name}/stopStop container

Watch and alerts​

Check alert thresholds, manage the watch list, and read recorded incidents.

Endpoint
GET/api/alertsCheck alerts
GET/api/watchGet watch list
GET/api/watch/incidentsList incidents
GET/api/watch/incidents/{id}Get incident
POST/api/watch/targetsAdd watch target
POST/api/watch/targets/{name}/removeRemove watch target
POST/api/watch/checkRun watch check

Backups​

Create, list, drill and restore Docker compose backups.

Endpoint
GET/api/backupList backups
POST/api/backupCreate backup
POST/api/backup/drillRun backup drill
POST/api/backup/restoreRestore backup

Install​

Install, inspect, uninstall and purge the apps in the catalogue.

Endpoint
GET/api/installList apps
GET/api/install/{app}Get app status
POST/api/install/{app}Install app
POST/api/install/{app}/uninstallUninstall app
POST/api/install/{app}/purgePurge app

Proxmox​

Read Proxmox VE endpoints and guests, and start, reboot or shut down a guest.

Endpoint
GET/api/proxmox/endpointsList Proxmox endpoints
GET/api/proxmox/statusGet Proxmox status
GET/api/proxmox/guestsList Proxmox guests
POST/api/proxmox/guests/{vmid}/startStart Proxmox guest
POST/api/proxmox/guests/{vmid}/rebootReboot Proxmox guest
POST/api/proxmox/guests/{vmid}/shutdownShut down Proxmox guest

Wake and notify​

Send a Wake-on-LAN packet and test your notification channels.

Endpoint
GET/api/wakeList wake targets
POST/api/wake/{name}Send wake packet
POST/api/notify/testSend test notification

Config​

Read the settings the dashboard shows, and save changes to the config file.

Endpoint
GET/api/configGet config
PUT/api/config/alertsSave alert thresholds
PUT/api/config/notifySave notification channels
PUT/api/config/wakeSave wake targets
PUT/api/config/serversSave servers
PUT/api/config/proxmoxSave Proxmox endpoints

Meta​

Ask the server what it can do, which version it is, and what its CORS preflight allows.

Endpoint
GET/api/capabilitiesList capabilities
GET/api/versionGet version
OPTIONS/api/Answer a CORS preflight