Page tree
Skip to end of metadata
Go to start of metadata

APIv3

For APIv3, the Swagger documentation offers interactive curl examples:

Please use the Swagger docs to explore the APIv3:
https://download-unimus.netcore.software/api-v3-preview/

APIv2

For APIv2 curl examples, please see below.

Format of curl examples

The curl examples will use this format:

curl -sS \
-H 'Authorization: Bearer <token>' \
-d '<data>' \
'http://<unimus-address>:8085/api/v2/<API-path>' | json_pp

Explanation:
-sS  : makes curl run silent - not show request processing, etc., but still properly show errors
-H : adds HTTP headers needed to communicate with Unimus API
-d  : data needed for various requests - not always needed

We will then pass the output to json_pp which will format the JSON received from the Unimus API.

The above curl command is the same as if written on one line (without the use of json_pp here):

curl -sS -H 'Authorization: Bearer <token>' -d '<data>' 'http://<unimus-address>:8085/api/v2/<API-path>' | json_pp

You will need to substitute the values inside <...> for your actual values:

<token>                  : change this for your Unimus API token
<unimus-address> : change this for the actual address of your Unimus server
<API-path>             : change this for the API path you wish to call

These curl examples are just examples.
We highly recommend checking the full API documentation for more information and options for each API call.

Examples

Get current status of your Unimus server


This API call will return the current status of Unimus.
Full API documentation#Healthcheck

curl call:

curl -sS \
-H 'Authorization: Bearer <token>' \
'http://<unimus-address>:8085/api/v2/health' | json_pp


Output:

{
   "data" : {
      "status" : "OK"
   }
}

We can see that everything is OK, no issues with the system.

 

Add a device into Unimus


This API call will create a device with address <address>.
Full API documentation#Devices-createnewdevice

We are not passing a device description, nor explicitelly setting a schedule (so the default one will be used).

curl call:

curl -sS \
-H 'Content-type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{"address":"<address>"}' \
'http://<unimus-address>:8085/api/v2/devices' | json_pp


Output:

{
   "vendor" : null,
   "port" : null,
   "connector" : null,
   "address" : "<address>",
   "description" : null,
   "model" : null,
   "type" : null,
   "createTime" : 1511974691,
   "credential" : null,
   "schedule" : {
      "createTime" : 1504105870,
      "hour" : 2,
      "dow" : 1,
      "id" : 2,
      "dom" : 1,
      "name" : "Every day at 02:00.",
      "min" : 0,
      "periodicity" : "DAILY"
   },
   "id" : 92
}

We can see the device was created with the default schedule, and is currently unknown.

Unimus will run a discovery on the device - since its a newly added device.

 

Find device id by device address


We need a valid deviceId to continue in the examples, so lets find the id of the device with address '1.1.1.1'.
Full API documentation#Devices-getdevicebyaddress

curl call:

curl -sS \
-H 'Authorization: Bearer <token>' \
'http://<unimus-address>:8085/api/v2/devices/findByAddress/1.1.1.1' | json_pp

Please note you might need to get multiple pages to find your device if you have many devices in Unimus.
To do this, simply change set the page to 2, 3, etc.

Output:

{
   "data" : {
      "vendor" : "MikroTik",
      "connector" : "SSH",
      "address" : "198.18.0.1",
      "id" : 57,
      "schedule" : null,
      "model" : "Simulated-RouterOS",
      "credential" : null,
      "description" : null,
      "type" : "RouterOS",
      "createTime" : 1504195747,
      "port" : 22
   }
}

Here we see the id of our device is 57.


Run a backup on a device


We want to run a backup on a device - we know its id, so we can call the API.
Full API documentation#Runjob-backupdevice

curl call:

curl -sS \
-H 'Authorization: Bearer <token>' \
-X PATCH \
'http://<unimus-address>:8085/api/v2/jobs/backup?id=57' | json_pp


Output:

{
   "data" : {
      "undiscovered" : 0,
      "refused" : 0,
      "accepted" : 1
   }
}

Unimus is now performing the backup on the selected device.

 

Retrieve latest backup of a device


We now want to retrieve the latest backup of our device.
Full API documentation#Backups-getdevicelatestbackup

curl call:

curl -sS \
-H 'Authorization: Bearer <token>' \
'http://<unimus-address>:8085/api/v2/devices/57/backups/latest' | json_pp


Output:

{
   "data" : {
      "type" : "TEXT",
      "id" : 348,
      "bytes" : "IyBTaW11bGF0ZWQgTWlrcm9UaWsgUm91dGVyT1Mgc3lzdGVtCiMgc29mdHdhcmUgaWQgPSBub25lCiMKL3NlY3Rpb24gYQpjb21tYW5kIGEKL3NlY3Rpb24gYmIKY29tbWFuZCBiYgovc2VjdGlvbiBjY2MKY29tbWFuZCBjY2MK",
      "createTime" : 1511980661
   }
}

We receive the backup as a byte array (UTF-8 encoded).

  • No labels