Skip to main content

HTTP API

The device host an HTTP server with an API on port 80. All requests have to be authenticated using HTTP Basic Auth. The user name will always be. The password is by default, but it is configurable using the option. The API can be disabled using the settings option.

Data is sent in a JSON format. All responses are a JSON object containing a boolean property. It is if the request succeeded, otherwise. If the request succeeded, any response data is contained in the field. If the request failed, there will be a field containing a single error message, or a list of multiple error messages.

Example of a failed request:

{
"ok": false,
"msg": "An error message"
}

Example of a successful request:

{
"ok": true,
"data": [1, 2, 3, 4]
}

HTTP Endpoints

GET /api/v1/ping

The device will respond with .

GET /api/v1/config

Get the current configuration.

POST /api/v1/config

Update the device configuration. The device will automatically reboot.

POST /api/v1/ota

Upload a firmware update to the device. The update is sent as raw octet stream in the request body. The device will automatically reboot after sending a response.

POST /api/v1/rollback

Initiate a firmware rollback. The device will automatically reboot after seding a response.

POST /api/v1/reboot

Reboot the device.

POST /api/v1/factory_reset

Reset the device configuration to factory values. The device will automatically reboot after sending a response.

POST /api/v1/counter_reset

Reset the counter values.

GET /api/v1/log

Responds with an array of the most recent logs.

GET /api/v1/meta

Responds with metadata about the device.

Example response:

{
"ok": true,
"data": {
"name": "softli-collector-a0764e81f69a",
"device_id": "a0764e81f69a",
"uptime": 25215,
"version": "v1.2.1rc1",
"fw_name": "Default firmware",
"rollback_available": false,
"free_memory": 19.8,
"wifi_status": "Access point (0 clients)",
"wifi_ip": "192.168.254.1",
"wifi_netmask": "255.255.255.0",
"wifi_gateway": "192.168.254.1",
"wifi_mac": "a6:76:4e:81:f6:9a",
"eth_connected": true,
"eth_ip": "192.168.255.1",
"eth_netmask": "255.255.255.0",
"eth_gateway": "192.168.255.1",
"eth_mac": "a2:76:4e:81:f6:9a",
"inputs": [
{
"active_count": 35980,
"inactive_count": 35980,
"active": false
},
...
]
}
}