Browse the docs

GET /state

Returns the engine's version, pause state, listeners, permissions, trigger sources, library counts and live runs.

Details #

A cheap health check. If this answers, the engine is up.

curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:48080/state
{
  "engine": { "version": "0.1.0", "pid": 4121, "startedAt": "2026-10-24T08:00:00Z", "paused": false, "pausedUntil": null },
  "listeners": { "socket": "listening", "http": "listening 127.0.0.1:48080" },
  "secureInput": false,
  "permissions": { "accessibility": "unknown", "inputMonitoring": "unknown", "screenRecording": "unknown" },
  "library": { "macros": 24, "groups": 5, "issues": 0 },
  "runs": { "live": 0, "queued": 0 },
  "triggers": { "sources": {}, "count": 9 }
}

Parameters #

curl --unix-socket "$SWITCHBOARD_HOME/engine.sock" -X GET http://localhost/state

The engine's state: permissions, secure input, pause. The Unix socket needs no token; loopback 127.0.0.1:48080 needs Authorization: Bearer <api-token>.

Gotchas #

  • The permissions values are unknown until the app reports them.

  • Over loopback every request needs Authorization: Bearer <token>; see GET /macros.

See also #