Skip to content

Use these endpoints to monitor daemon health, inspect the runtime status of managed programs, and retrieve program log output. The health endpoint is unauthenticated and suitable for liveness probes. The status endpoints return runtime information (PIDs, uptime, lifecycle state) for programs managed by the daemon, and the logs endpoint returns the tail of a program’s stdout or stderr stream.


Returns the standardized 9-field health response. Unauthenticated. Always returns HTTP 200 with Content-Type: application/json when the service is up.

This endpoint takes no parameters.

Terminal window
curl http://localhost:9636/api/v1/daemon/health
{
"status": "ok",
"service": "hoody-daemon",
"built": "2026-01-15T10:30:00Z",
"started": "2026-01-20T08:00:00Z",
"memory": {
"rss": 25165824,
"heap": null
},
"fds": 42,
"pid": 1234,
"ip": "192.168.1.10",
"userAgent": "Hoody/1.0"
}
FieldTypeDescription
statusstringService status. Always "ok" when healthy
servicestringService name
builtstringExecutable mtime as RFC3339 string
startedstringProcess start time as RFC3339 string
memoryobjectMemory usage with rss (required) and optional heap
fdsintegerCount of open file descriptors
pidintegerProcess ID of the daemon
ipstringIP address the daemon is bound to
userAgentstringUser-Agent header from the incoming request

Retrieves the current runtime status of all configured programs. Returns information about whether each program is running, stopped, or in another state, along with process details for running programs.

This endpoint takes no parameters.

Terminal window
curl http://localhost:9636/api/v1/daemon/status

Programs in various states

{
"success": true,
"statuses": [
{
"id": 1,
"name": "web-server",
"enabled": true,
"status": {
"id": 1,
"status": "RUNNING",
"pid": 1234,
"uptime": "2:15:30"
}
},
{
"id": 2,
"name": "nodejs-app",
"enabled": false,
"status": {
"id": 2,
"status": "STOPPED"
}
},
{
"id": 3,
"name": "worker",
"enabled": true,
"status": {
"id": 3,
"status": "FATAL"
}
}
]
}

All programs running

{
"success": true,
"statuses": [
{
"id": 1,
"name": "web-server",
"enabled": true,
"status": {
"id": 1,
"status": "RUNNING",
"pid": 1234,
"uptime": "5:42:10"
}
},
{
"id": 2,
"name": "nodejs-app",
"enabled": true,
"status": {
"id": 2,
"status": "RUNNING",
"pid": 1235,
"uptime": "5:42:08"
}
}
]
}
FieldTypeDescription
successbooleanWhether the request succeeded
statusesarrayStatus information for all programs
statuses[].idintegerProgram identifier
statuses[].namestringProgram name
statuses[].enabledbooleanWhether the program is enabled in the configuration
statuses[].statusobjectRuntime status object (see below)
statuses[].status.statusstringLifecycle state. One of RUNNING, STOPPED, STARTING, STOPPING, BACKOFF, FATAL
statuses[].status.pidintegerProcess ID when running, null otherwise
statuses[].status.uptimestringUptime in H:MM:SS format when running, null otherwise

Retrieves the current runtime status of a specific program by ID. For port-range programs, returns all running instances unless a specific port is requested via query parameter. Returns detailed process information including PID and uptime.

NameInTypeRequiredDescription
idpathintegerYesUnique numeric identifier of the program
portqueryintegerNoFilter to specific port instance (for port-range programs only)
include_statsquerystringNoInclude resource stats (CPU, memory, process tree) for running programs. Adds a stats field with pid, started_at, cpu_percent, memory_rss_bytes, process_count, and per-process breakdown. Accepts "true" or "false".
Terminal window
curl http://localhost:9636/api/v1/daemon/status/1

Program is running

{
"success": true,
"status": {
"id": 1,
"status": "RUNNING",
"pid": 1234,
"uptime": "2:15:30"
}
}

Program is stopped

{
"success": true,
"status": {
"id": 1,
"status": "STOPPED"
}
}

Program failed to start

{
"success": true,
"status": {
"id": 1,
"status": "FATAL"
}
}
FieldTypeDescription
successbooleanWhether the request succeeded
statusobjectRuntime status for the program
status.idintegerProgram identifier
status.statusstringLifecycle state. One of RUNNING, STOPPED, STARTING, STOPPING, BACKOFF, FATAL
status.pidintegerProcess ID when running, null otherwise
status.uptimestringUptime in H:MM:SS format when running, null otherwise
statsobjectResource stats for the program’s process tree. Only present when include_stats=true and the program is running

Retrieve the last N lines from a program’s stdout or stderr log file.

NameInTypeRequiredDescription
idpathintegerYesProgram ID
typequerystringNoLog stream. One of stdout (default) or stderr
linesqueryintegerNoNumber of lines to return from end of file. Default: 100
portqueryintegerNoPort number (required for port-range programs)
Terminal window
curl "http://localhost:9636/api/v1/daemon/programs/1/logs?type=stdout&lines=50"
{
"success": true,
"error": null,
"logs": "2026-01-20T08:00:01Z Server started on port 8080\n2026-01-20T08:00:02Z Listening for connections...\n2026-01-20T08:00:05Z Connection accepted from 10.0.0.5",
"type": "stdout",
"lines": 50,
"log_file": "/var/log/hoody/web-server.stdout.log"
}
FieldTypeDescription
successbooleanWhether the request succeeded
errorstringError message, present when success is false
logsstringLog content (last N lines)
typestringLog type that was read. One of stdout, stderr
linesintegerNumber of lines returned
log_filestringPath to the log file that was read