GET /not-fired
Returns events that matched a trigger but did not start a macro, with the reason for each candidate.
Details #
curl -s -H "Authorization: Bearer $TOKEN" "http://127.0.0.1:48080/not-fired?since=2h"
[
{
"at": "2026-10-24T09:14:02Z",
"trigger": "hotkey",
"event": { "app": "com.apple.Safari" },
"candidates": [
{ "macroId": "m_4f2a9c", "reason": "scope" },
{ "macroId": "m_77d0e1", "reason": "conditionFalse", "which": "frontApp", "values": { "app": "com.apple.Safari" } }
]
}
]
reason is one of groupOff, scope, conflict, secureInput, conditionFalse, paused or disabled. For conditionFalse, which names the condition and values holds what it compared.
Parameters #
curl --unix-socket "$SWITCHBOARD_HOME/engine.sock" -X GET http://localhost/not-fired
Why events did not fire anything. The Unix socket needs no token; loopback 127.0.0.1:48080 needs Authorization: Bearer <api-token>.
Gotchas #
An unreadable
sincereturns400withsince must be like 10m, 2h, a number or an ISO date.Over loopback every request needs
Authorization: Bearer <token>; see GET /macros.