alive

The alive request returns a fixed-response (i.e. never changes) UUID together with the IP address of the requestor; any error would indicate that MSR is not running/healthy. The response is plain text for easy handling. Any error indicates that Reactor is not functional.

Example (GET): curl 'http://host-ip:8111/api/v1/alive'

fbd4838c-5fdc-11eb-9093-3798dc850515 Hello 192.168.0.16

reload

Causes Reactor to shutdown and restart.

Example (GET): curl 'http://host-ip:8111/api/v1/reload'

system

Returns a structure of system information for the Reactor installation and host runtime environment.

Example (GET): curl 'http://host-ip:8111/api/v1/system'

{
    "host": {
        "time": 1636055037942,
        "timezone": "America/New_York",
        "tzoffset": -240,
        "name": "rpi4-1",
        "lang": "en_US.UTF-8",
        "httpapi_version": 21282
    },
    "loadav": [0.18, 0.19, 0.18],
    "uptime": [667, 2088067],
    "memory": {
        "rss": 80408576,
        "heapTotal": 15159296,
        "heapUsed": 13865972,
        "external": 2612109,
        "arrayBuffers": 202398,
        "sys_total": 4024152064,
        "sys_free": 1945649152
    },
    "pid": 28297,
    "user": {
        "uid": 1000,
        "gid": 1000,
        "username": "pi",
        "homedir": "/home/pi",
        "shell": "/bin/bash"
    },
    "engine": true,
    "engine_tasks": [],
    "locale": "en-US",
    "language_name": "US English"
}

systime

Returns the time of the running Reactor engine on the host.

Example (GET): curl 'http://host-ip:8111/api/v1/systime'

{
    "time": 1636055110371,
    "timezone": "America/New_York",
    "tzoffset": -240,
    "engine_time": 1636055110372
}

The engine_time is the time in effect for the engine. If it is significantly different from time, then Test Time is in effect, and engine_time is then the current time in the test alternate universe.

Also see Dates/Times.

structure

Returns a JSON response containing the Structure instance data which is the container for all controllers, entities, and capabilities. It is an "all inclusive" response of considerable breadth and depth, intended to help "bootstrap" API clients (like dashboards) with a full system view at startup.

Example (GET): curl 'http://host-ip:8111/api/v1/structure'

{
    "structure": {},
    id: 1,
    uuid: "7e3e4f14-3daa-11ec-9a33-cf13a0884891",
    "startup": 1636054371466,
    "controllers": {
        /* contains a series of Controller structures as returned
        *  by controller/:id, except that the entities list is a
        *  simple array of IDs. The actual entity structures are
        *  returned separately below
        */
        "vera": {
            ...etc...
        }
    "entities": {
        /* contains a series of Entity structures as returned by
        *  entity/:id
        */
        "vera>system": {
            ...etc...
        }
    },
    "capabilities": {
        /* Returns capabilities as would be returned by the same-
        *  named API function (capabilities)
        */
        "power_switch": {
            ...etc...
        }
    },
    "since": 1636055333624
}

notify/:method

You can use the Reactor HTTP API to send a notification via one of its configured notification methods.

Example (GET): curl 'http://host-ip:8111/api/v1/notify/Pushover?message=Greetings%21'

Example (POST JSON w/recent curl):

    curl --json '{"message": "Greetings!"}' 'http://host-ip:8111/api/v1/notify/SMTP'

Example (POST Form Data w/recent curl):

    curl --data-urlencode "message=Greetings!" 'http://host-ip:8111/api/v1/notify/SMTP'

Take care that the method component given in the final endpoint URL is exactly one of the configured methods in Reactor's notification.yaml file (including capitalization).

For POST requests, the request body data may be given as JSON or form data with the correct identifying Content-Type header.

In addition to the message parameter, the profile and other notifier-specific parameters may be passed as needed. These parameters are explained in the documentation for the Router notification method in the Reactor documentation.

A successful result is indicated by the HTTP 200 response code. The response body will be in the API's standard non-data response form (i.e. JSON object with status boolean). A 404 response code is returned if the requested notifier is not configured. A 500 response code is returned for other errors, and the Reactor log should be checked for specific details.

Substitution of variables (including global variables) is not performed when using this endpoint.

Updated 2026-Jun-14