It comes bundled with a PHP class for access to the UniFi Controller API, which supports more API endpoints than the UniFi API browser tool does.
If you plan on creating your own PHP code to leverage the UniFi controller API, it is recommended to use the standalone version of the API client class which can be found here: https://github.com/Art-of-WiFi/UniFi-API-client
You will find examples and detailed instructions there.
Please keep the following in mind:
A demo version that is connected to Ubiquiti's demo controller is available here: https://api-browser-demo.artofwifi.net/
Because the structure of the configuration file has changed, we recommend creating a fresh install when upgrading from 1.X to 2.X.
The UniFi API browser tool offers the following features:
PHP array, interactiveand
PHP array, highlightedhave been implemented)
JSONoutput format, will fail gracefully with large collections)
truein the config file to enable debug mode)
Please note that the bundled API client supports many more API endpoints, not all make sense to add to the API browser though.
Installation of this tool is quite straightforward. The easiest way to do this is by using
git clone which also allows for easy updates:
/var/www/html) and execute the following command from your command prompt:
git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
Alternatively you may choose to download the zip file and unzip it in your directory of choice, then follow the configuration steps below.
config/config-template.phpwhich should be copied/renamed to
config/config-template.phpfile for further configuration instructions
config/users-template.phpfile for further details
http(s)://<server IP address>/UniFi-API-browser/
Support for UniFi OS-based controllers (UniFi Dream Machine Pro) has been added with version 2.0.7. When adding the details for a UniFi OS device to the
config/config.php file, please make sure not to add a port suffix or trailing slashes to the URL.
Since version 2.0.0 you can extend the Collections dropdown menu with your own options by adding them to the
Here's an example:
/** * adding a custom sub menu example */ $collections = array_merge($collections, [ [ 'label' => 'Custom Menu', // length of this string is limited due to dropdown menu width 'options' => [ [ 'type' => 'collection', // either 'collection' or 'divider' 'label' => 'hourly site stats past 24 hours', // string that is displayed in the dropdown menu 'method' => 'stat_hourly_site', // name of the method/function in the API client class that is called 'params' => [(time() - (24 * 60 *60)) * 1000, time() * 1000], // an array containing the parameters as they are passed to the method/function ], [ 'type' => 'collection', 'label' => 'daily site stats past 31 days', 'method' => 'stat_daily_site', 'params' => [(time() - (31 * 24 * 60 *60)) * 1000, time() * 1000], ], [ 'type' => 'divider', // dividers have no other properties ], [ 'type' => 'collection', 'label' => 'enable the site LEDs', 'method' => 'site_leds', // don't go too wild when adding such calls, this example is simply to show the flexibility 'params' => [true] ], [ 'type' => 'collection', 'label' => 'disable the site LEDs', 'method' => 'site_leds', // don't go too wild when adding such calls, this example is simply to show the flexibility 'params' => [false] ], ], ], ]);
Note: for a
collection type menu option the
key "properties" are required.
This is what the result looks like for the above example:
If you installed the tool using the
git clone command, you can apply updates by going into the directory where the tool is installed, and running the
git pull command from there.
Otherwise you can simply copy the contents from the latest zip file to the directory where the tool has been installed.
The PHP API client that comes bundled with this tool is based on the work by the following developers:
and the API as published by Ubiquiti:
Other included libraries:
We highly recommend enabling the user name/password authentication feature by creating a
config/users.php based on the included
config/users-template.php file. When creating passwords and their SHA512 hashes for entry in the
config/users.php file, please make sure to use strong random passwords.
Please refer to the instructions in the
config/users-template.php file for further details
It is your own responsibility to implement the necessary additional controls in securing this application and preventing unwanted access.
Here are a couple of screenshots of the tool in action.
The Login form when user authentication is enabled:
The controller selection dropdown menu:
The site selection dropdown menu:
The collection dropdown menu:
Showing the site settings collection in JSON format:
Showing the site settings collection in interactive PHP format:
The "About" modal: