Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:software:unifi-controller:api [2019/05/07 01:56]
noderat Added force-provision site endpoint callable command
products:software:unifi-controller:api [2020/05/20 17:08] (current)
rchase [Table]
Line 36: Line 36:
 All commands are presumed to be prefixed with `api/​s/​{site}` All commands are presumed to be prefixed with `api/​s/​{site}`
  
-^ Path                  ^ Method ​       ^ Notes                                                                                                            +^ Path                           ​^ Method ​       ^ Notes                                                                                                                                                                                                                                                                                                      
-| stat/​health ​          ​| GET           | Health status of the site                                                                                        +| stat/​health ​                   | GET           | Health status of the site                                                                                                                                                                                                                                                                                  
-| self                  | GET           | Logged in user                                                                                                   ​+| self                           ​| GET           | Logged in user                                                                                                                                                                                                                                                                                             ​
-| stat/​ccode ​           | GET           | List of country codes                                                                                            +| stat/​ccode ​                    ​| GET           | List of country codes                                                                                                                                                                                                                                                                                      
-| stat/​current-channel ​ | GET           | List of all RF channels based on the site country code                                                           ​+| stat/​current-channel ​          ​| GET           | List of all RF channels based on the site country code                                                                                                                                                                                                                                                     ​
-| stat/​sysinfo ​         | GET           | Some high-level information about the controller ​                                                                ​+| stat/​sysinfo ​                  ​| GET           | Some high-level information about the controller ​                                                                                                                                                                                                                                                          ​
-| stat/​event ​           | GET           | List site events by most recent first, 3000 result limit                                                         ​+| stat/​event ​                    ​| GET           | List site events by most recent first, 3000 result limit                                                                                                                                                                                                                                                   ​
-| rest/​event ​           | GET           | List site events by oldest, no limit? ​                                                                           +| rest/​event ​                    ​| GET           | List site events by oldest, no limit? ​                                                                                                                                                                                                                                                                     
-| stat/​alarm ​           | GET           | List alarms by most recent, 3000 result limit? ​                                                                  ​+| stat/​alarm ​                    ​| GET           | List alarms by most recent, 3000 result limit? ​                                                                                                                                                                                                                                                            ​
-| rest/​alarm ​           | GET           | List alarms by oldest, no limit? ​                                                                                ​+| rest/​alarm ​                    ​| GET           | List alarms by oldest, no limit? ​                                                                                                                                                                                                                                                                          ​
-| stat/​sta ​             | GET           | List of all _active_ clients on the site                                                                         ​+| stat/​sta ​                      ​| GET           | List of all _active_ clients on the site                                                                                                                                                                                                                                                                   ​
-| rest/​user ​            ​| GET/​POST/​PUT ​ | List of all configured/​known clients on the site                                                                 ​+| rest/​user ​                     | GET/​POST/​PUT ​ | List of all configured/​known clients on the site                                                                                                                                                                                                                                                           ​
-| stat/​device-basic ​    ​| GET           | List of site devices with only '​adopted',​ '​disabled',​ '​mac',​ '​state',​ '​type'​ keys, useful for filtering on type  +| stat/​device-basic ​             | GET           | List of site devices with only '​adopted',​ '​disabled',​ '​mac',​ '​state',​ '​type'​ keys, useful for filtering on type                                                                                                                                                                                            
-| stat/​device ​          ​| GET/​POST ​     | Detailed list of all devices on site.  Can be filtered by posting `{"​macs":​ ["​mac1",​ ... ]}`                     ​+| stat/​device ​                   | GET/​POST ​     | Detailed list of all devices on site.  Can be filtered by posting `{"​macs":​ ["​mac1",​ ... ]}`                                                                                                                                                                                                               ​
-| rest/​device/​{_id} ​    ​| PUT           | Updates to devices get PUT here, why?                                                                            +| rest/​device/​{_id} ​             | PUT           | Updates to devices get PUT here, why?                                                                                                                                                                                                                                                                      
-| rest/​setting ​         | GET/​PUT ​      | Detailed site settings, updating requires adding key and _id to path for PUT                                     ​+| rest/​setting ​                  ​| GET/​PUT ​      | Detailed site settings, updating requires adding key and _id to path for PUT                                                                                                                                                                                                                               ​
-| stat/​routing ​         | GET           | All active routes on the device ​                                                                                 +| stat/​routing ​                  ​| GET           | All active routes on the device ​                                                                                                                                                                                                                                                                           
-| rest/​routing ​         | GET/​PUT ​      | User defined routes ​                                                                                             +| rest/​routing ​                  ​| GET/​PUT ​      | User defined routes ​                                                                                                                                                                                                                                                                                       
-| rest/​firewallrule ​    ​| GET/​PUT ​      | User defined firewall rules. ​ This does not show auto-generated rules                                            +| rest/​firewallrule ​             | GET/​PUT ​      | User defined firewall rules. ​ This does not show auto-generated rules                                                                                                                                                                                                                                      
-| rest/​firewallgroup ​   | GET/​PUT ​      | User defined firewall groups. ​                                                                                   +| rest/​firewallgroup ​            ​| GET/​PUT ​      ​| ​User defined firewall groups. ​                                                                                                                                                                                                                                                                            | 
-| rest/​tag ​             | GET/​PUT? ​     | Tagged macs                                                                                                      +| rest/​wlanconf ​                 | GET/​PUT ​      | List WLANs, edit current WLANs and create new WLANs                                                                                                                                                                                                                                                        ​
-| stat/​rogueap ​         | GET/​POST ​     | Neighboring APs optional json post '​within'​ = seen in the last x hours                                           ​+| rest/​tag ​                      ​| GET/​PUT? ​     | Tagged macs                                                                                                                                                                                                                                                                                                
-| stat/​sitedpi ​         | GET/​POST ​     | DPI stats requires type="​by_app"​ or "​by_cat"​ | +| stat/​rogueap ​                  ​| GET/​POST ​     | Neighboring APs optional json post '​within'​ = seen in the last x hours                                                                                                                                                                                                                                     ​
-| stat/​stadpi ​          ​| GET/​POST ​     | DPI stats requires type="​by_app"​ or "​by_cat"​ optionally filtered macs=[..., ] | +| stat/​sitedpi ​                  ​| GET/​POST ​     | DPI stats requires type="​by_app"​ or "​by_cat" ​                                                                                                                                                                                                                                                              ​
-| stat/​dynamicdns ​      ​| GET           | DynamicDNS information and status like current ip, last changed, and status ​ +| stat/​stadpi ​                   | GET/​POST ​     | DPI stats requires type="​by_app"​ or "​by_cat"​ optionally filtered macs=[..., ]                                                                                                                                                                                                                              
-| rest/​dynamicdns ​      ​| GET/​PUT ​      | DynamicDNS configuration | +| stat/​dynamicdns ​               | GET           | DynamicDNS information and status like current ip, last changed, and status ​                                                                                                                                                                                                                               
-| rest/​portconf ​        ​| GET           | Switch port profiles | +| rest/​dynamicdns ​               | GET/​PUT ​      | DynamicDNS configuration ​                                                                                                                                                                                                                                                                                  ​
-| stat/​spectrumscan ​    ​| GET           | Get RF scan results, can be for a specific mac by appending to endpoint | +| rest/​portconf ​                 | GET           | Switch port profiles ​                                                                                                                                                                                                                                                                                      ​
-| rest/​radiusprofile ​   | GET/​POST/​PUT ​ | Radius profiles | +| stat/​spectrumscan ​             | GET           | Get RF scan results, can be for a specific mac by appending to endpoint ​                                                                                                                                                                                                                                   
-| rest/​account ​         | GET/​POST/​PUT ​ | Radius accounts | +| rest/​radiusprofile ​            ​| GET/​POST/​PUT ​ | Radius profiles ​                                                                                                                                                                                                                                                                                           
-| rest/​portforward ​     | GET           | List all port forwards configured on the site | +| rest/​account ​                  ​| GET/​POST/​PUT ​ | Radius accounts ​                                                                                                                                                                                                                                                                                           
-| stat/​report/​{interval}.{type} ​  ​| POST | Intervals are '​5minutes',​ '​hourly',​ and '​daily'​. ​ Report types are '​site',​ '​user',​ and '​ap'​. ​ Must specify attributes to be returned '​bytes',​ '​wan-tx_bytes',​ '​wan-rx_bytes',​ '​wlan_bytes',​ '​num_sta',​ '​lan-num_sta',​ '​wlan-num_sta',​ '​time',​ '​rx_bytes',​ '​tx_bytes'​. ​ Can be filtered with '​macs':​ [...] |+| rest/​portforward ​              ​| GET           | List all port forwards configured on the site                                                                                                                                                                                                                                                              
 +| stat/​report/​{interval}.{type} ​ | POST          | Intervals are '​5minutes',​ '​hourly',​ and '​daily'​. ​ Report types are '​site',​ '​user',​ and '​ap'​. ​ Must specify attributes to be returned '​bytes',​ '​wan-tx_bytes',​ '​wan-rx_bytes',​ '​wlan_bytes',​ '​num_sta',​ '​lan-num_sta',​ '​wlan-num_sta',​ '​time',​ '​rx_bytes',​ '​tx_bytes'​. ​ Can be filtered with '​macs':​ [...]  |
  
  
Line 74: Line 75:
 Posting to the endpoint `api/​s/​{site}/​cmd/<​manager>​` with the `json {"​cmd":​ "​command"​}` you can invoke commands on the controller. Posting to the endpoint `api/​s/​{site}/​cmd/<​manager>​` with the `json {"​cmd":​ "​command"​}` you can invoke commands on the controller.
  
-^ Manager ^ Call ^ Notes ^ +^ Manager ​ ^ Call                ^ Notes                                                                                    
-| evtmgt | archive-all-alarms | | +| evtmgt ​  ​| archive-all-alarms ​                                                                                          
-| sitemgr | add-site | desc = Descriptive name ( required ), name = shortname ( in the URL ) | +| sitemgr ​ | add-site ​           | desc = Descriptive name ( required ), name = shortname ( in the URL )                    
-| sitemgr | delete-site | name = short name ( required ) | +| sitemgr ​ | delete-site ​        ​| name = short name ( required )                                                           ​
-| sitemgr | update-site | desc = Descriptive name ( required ) | +| sitemgr ​ | update-site ​        ​| desc = Descriptive name ( required )                                                     ​
-| sitemgr | get-admins ​ | List all administrators and permission for this site | +| sitemgr ​ | get-admins ​         | List all administrators and permission for this site                                     ​
-| sitemgr | move-device | mac = device mac ( required ), site_id = 24 digit id ( required ) | +| sitemgr ​ | move-device ​        ​| mac = device mac ( required ), site_id = 24 digit id ( required )                        
-| sitemgr | delete-device | mac = device mac ( required ) | +| sitemgr ​ | delete-device ​      ​| mac = device mac ( required )                                                            
-| stamgr ​ | block-sta | mac = client mac ( required ) | +| stamgr ​  ​| block-sta ​          ​| mac = client mac ( required )                                                            
-| stamgr ​ | unblock-sta | mac = client mac ( required ) | +| stamgr ​  ​| unblock-sta ​        ​| mac = client mac ( required )                                                            
-| stamgr ​ | kick-sta | Disconnect: mac = client mac (required ) | +| stamgr ​  ​| kick-sta ​           | Disconnect: mac = client mac (required )                                                 ​
-| stamgr ​ | forget-sta | Forget a client ( controller 5.9.x only ) | +| stamgr ​  ​| forget-sta ​         | Forget a client ( controller 5.9.x only )                                                | 
-| devmgr ​ | adopt | mac = device mac ( required ) | +| stamgr ​  | unauthorize-guest ​  | Unauthorize a client device, mac = client mac (required) ​                                
-| devmgr ​ | restart | mac = device mac ( required ) | +| devmgr ​  ​| adopt               ​| mac = device mac ( required )                                                            
-| devmgr ​ | force-provision | mac = device mac ( required ) | +| devmgr ​  ​| restart ​            ​| mac = device mac ( required )                                                            
-| devmgr ​ | power-cycle | mac = switch mac ( required ), port_idx = PoE port to cycle ( required ) | +| devmgr ​  ​| force-provision ​    ​| mac = device mac ( required )                                                            
-| devmgr ​ | speedtest | Start a speed test | +| devmgr ​  ​| power-cycle ​        ​| mac = switch mac ( required ), port_idx = PoE port to cycle ( required )                 ​
-| devmgr ​ | speedtest-status | get the current state of the speed test | +| devmgr ​  ​| speedtest ​          ​| Start a speed test                                                                       ​
-| devmgr ​ | set-locate | mac = device mac ( required ) blink unit to locate | +| devmgr ​  ​| speedtest-status ​   | get the current state of the speed test                                                  
-| devmgr ​ | unset-locate | mac = device mac ( required ) led to normal state | +| devmgr ​  ​| set-locate ​         | mac = device mac ( required ) blink unit to locate ​                                      ​
-| devmgr ​ | upgrade | mac = device mac ( required ) upgrade firmware | +| devmgr ​  ​| unset-locate ​       | mac = device mac ( required ) led to normal state                                        
-| devmgr ​ | upgrade-external | mac = device mac ( required ), url = firmware URL ( required ) | +| devmgr ​  ​| upgrade ​            ​| mac = device mac ( required ) upgrade firmware ​                                          ​
-| devmgr ​ | spectrum-scan | mac = device mac ( ap only, required ) trigger RF scan | +| devmgr ​  ​| upgrade-external ​   | mac = device mac ( required ), url = firmware URL ( required )                           ​
-| backup | list-backup | list of autobackup files | +| devmgr ​  | migrate ​            | mac = device mac ( required ), inform_url = New Inform URL to push to device (required) ​ 
-| backup | delete-backup | filename ( required ) | +| devmgr ​  | cancel-migrate ​     | mac = device mac ( required )                                                            | 
-| system | backup | create a backup. ​ This appears to backup to a fixed location in the filesystem | +| devmgr ​  | spectrum-scan ​      ​| mac = device mac ( ap only, required ) trigger RF scan                                   ​
-| stat | clear-dpi | resets the site wide DPI counters |+| backup ​  ​| list-backup ​        ​| list of autobackup files                                                                 ​
 +| backup ​  ​| delete-backup ​      ​| filename ( required )                                                                    
 +| system ​  ​| backup ​             | create a backup. ​ This appears to backup to a fixed location in the filesystem ​          ​
 +| stat     ​| clear-dpi ​          ​| resets the site wide DPI counters ​                                                       |
  
  
Line 107: Line 111:
 This data was extracted from the javascript of the site. This data was extracted from the javascript of the site.
  
-^ Device Code ^ Device Type ^ Device Name ^ +^ Device Code  ^ Device Type  ^ Device Name                  
-| BZ2 | uap | UniFi AP | +| BZ2          | uap          | UniFi AP                     ​
-| BZ2LR | uap | UniFi AP-LR | +| BZ2LR        | uap          | UniFi AP-LR                  
-| U2HSR | uap | UniFi AP-Outdoor+ | +| U2HSR        | uap          | UniFi AP-Outdoor+ ​           
-| U2IW | uap | UniFi AP-In Wall | +| U2IW         ​| uap          | UniFi AP-In Wall             ​
-| U2L48 | uap | UniFi AP-LR | +| U2L48        | uap          | UniFi AP-LR                  
-| U2Lv2 | uap | UniFi AP-LR v2 | +| U2Lv2        | uap          | UniFi AP-LR v2               ​
-| U2M | uap | UniFi AP-Mini | +| U2M          | uap          | UniFi AP-Mini ​               
-| U2O | uap | UniFi AP-Outdoor | +| U2O          | uap          | UniFi AP-Outdoor ​            ​
-| U2S48 | uap | UniFi AP | +| U2S48        | uap          | UniFi AP                     ​
-| U2Sv2 | uap | UniFi AP v2 | +| U2Sv2        | uap          | UniFi AP v2                  
-| U5O | uap | UniFi AP-Outdoor 5G | +| U5O          | uap          | UniFi AP-Outdoor 5G          
-| U7E | uap | UniFi AP-AC | +| U7E          | uap          | UniFi AP-AC                  
-| U7EDU | uap | UniFi AP-AC-EDU | +| U7EDU        | uap          | UniFi AP-AC-EDU ​             
-| U7Ev2 | uap | UniFi AP-AC v2 | +| U7Ev2        | uap          | UniFi AP-AC v2               ​
-| U7HD | uap | UniFi AP-HD | +| U7HD         ​| uap          | UniFi AP-HD                  
-| U7SHD | uap | UniFi AP-SHD | +| U7SHD        | uap          | UniFi AP-SHD ​                ​
-| U7NHD | uap | UniFi AP-nanoHD | +| U7NHD        | uap          | UniFi AP-nanoHD ​             | 
-| UCXG | uap | UniFi AP-XG | +| UFLHD        | uap          | UniFi AP-Flex-HD ​            | 
-| UXSDM | uap | UniFi AP-BaseStationXG | +| UHDIW        | uap          | UniFi AP-HD-In Wall          ​
-| UCMSH | uap | UniFi AP-MeshXG | +| UCXG         ​| uap          | UniFi AP-XG                  
-| U7IW | uap | UniFi AP-AC-In Wall | +| UXSDM        | uap          | UniFi AP-BaseStationXG ​      ​
-| U7IWP | uap | UniFi AP-AC-In Wall Pro | +| UCMSH        | uap          | UniFi AP-MeshXG ​             
-| U7MP | uap | UniFi AP-AC-Mesh-Pro | +| U7IW         ​| uap          | UniFi AP-AC-In Wall          
-| U7LR | uap | UniFi AP-AC-LR | +| U7IWP        | uap          | UniFi AP-AC-In Wall Pro      
-| U7LT | uap | UniFi AP-AC-Lite | +| U7MP         ​| uap          | UniFi AP-AC-Mesh-Pro ​        ​
-| U7O | uap | UniFi AP-AC Outdoor | +| U7LR         ​| uap          | UniFi AP-AC-LR ​              ​
-| U7P | uap | UniFi AP-Pro | +| U7LT         ​| uap          | UniFi AP-AC-Lite ​            ​
-| U7MSH | uap | UniFi AP-AC-Mesh | +| U7O          | uap          | UniFi AP-AC Outdoor ​         
-| U7PG2 | uap | UniFi AP-AC-Pro | +| U7P          | uap          | UniFi AP-Pro ​                ​
-| p2N | uap | PicoStation M2 | +| U7MSH        | uap          | UniFi AP-AC-Mesh ​            ​
-| US8 | usw | UniFi Switch 8 | +| U7PG2        | uap          | UniFi AP-AC-Pro ​             
-| US8P60 | usw | UniFi Switch 8 POE-60W | +| p2N          | uap          | PicoStation M2               | 
-| US8P150 | usw | UniFi Switch 8 POE-150W | +| US48PRO ​     | usw          | UniFi Switch Pro 48          ​
-| S28150 | usw | UniFi Switch 8 AT-150W | +| US8          | usw          | UniFi Switch 8               ​
-| USC8 | usw | UniFi Switch 8 | +| US8P60 ​      ​| usw          | UniFi Switch 8 POE-60W ​      ​
-| US16P150 | usw | UniFi Switch 16 POE-150W | +| US8P150 ​     | usw          | UniFi Switch 8 POE-150W ​     
-| S216150 | usw | UniFi Switch 16 AT-150W | +| S28150 ​      ​| usw          | UniFi Switch 8 AT-150W ​      ​
-| US24 | usw | UniFi Switch 24 | +| USC8         ​| usw          | UniFi Switch 8               ​
-| US24P250 | usw | UniFi Switch 24 POE-250W | +| US16P150 ​    ​| usw          | UniFi Switch 16 POE-150W ​    ​
-| US24PL2 | usw | UniFi Switch 24 L2 POE | +| S216150 ​     | usw          | UniFi Switch 16 AT-150W ​     
-| US24P500 | usw | UniFi Switch 24 POE-500W | +| US24         ​| usw          | UniFi Switch 24              
-| S224250 | usw | UniFi Switch 24 AT-250W | +| US24P250 ​    ​| usw          | UniFi Switch 24 POE-250W ​    ​
-| S224500 | usw | UniFi Switch 24 AT-500W | +| US24PL2 ​     | usw          | UniFi Switch 24 L2 POE       ​
-| US48 | usw | UniFi Switch 48 | +| US24P500 ​    ​| usw          | UniFi Switch 24 POE-500W ​    ​
-| US48P500 | usw | UniFi Switch 48 POE-500W | +| S224250 ​     | usw          | UniFi Switch 24 AT-250W ​     
-| US48PL2 | usw | UniFi Switch 48 L2 POE | +| S224500 ​     | usw          | UniFi Switch 24 AT-500W ​     
-| US48P750 | usw | UniFi Switch 48 POE-750W | +| US48         ​| usw          | UniFi Switch 48              
-| S248500 | usw | UniFi Switch 48 AT-500W | +| US48P500 ​    ​| usw          | UniFi Switch 48 POE-500W ​    ​
-| S248750 | usw | UniFi Switch 48 AT-750W | +| US48PL2 ​     | usw          | UniFi Switch 48 L2 POE       ​
-| US6XG150 | usw | UniFi Switch 6XG POE-150W | +| US48P750 ​    ​| usw          | UniFi Switch 48 POE-750W ​    ​
-| USXG | usw | UniFi Switch 16XG | +| S248500 ​     | usw          | UniFi Switch 48 AT-500W ​     
-| UGW3 | ugw | UniFi Security Gateway 3P | +| S248750 ​     | usw          | UniFi Switch 48 AT-750W ​     
-| UGW4 | ugw | UniFi Security Gateway 4P | +| US6XG150 ​    ​| usw          | UniFi Switch 6XG POE-150W ​   
-| UGWHD4 | ugw | UniFi Security Gateway HD | +| USXG         ​| usw          | UniFi Switch 16XG            
-| UGWXG | ugw | UniFi Security Gateway XG-8 | +| UGW3         ​| ugw          | UniFi Security Gateway 3P    
-| UP4 | uph | UniFi Phone-X | +| UGW4         ​| ugw          | UniFi Security Gateway 4P    
-| UP5 | uph | UniFi Phone | +| UGWHD4 ​      ​| ugw          | UniFi Security Gateway HD    
-| UP5t | uph | UniFi Phone-Pro | +| UGWXG        | ugw          | UniFi Security Gateway XG-8  
-| UP7 | uph | UniFi Phone-Executive | +| UP4          | uph          | UniFi Phone-X ​               
-| UP5c | uph | UniFi Phone | +| UP5          | uph          | UniFi Phone                  
-| UP5tc | uph | UniFi Phone-Pro | +| UP5t         ​| uph          | UniFi Phone-Pro ​             
-| UP7c | uph | UniFi Phone-Executive |+| UP7          | uph          | UniFi Phone-Executive ​       
 +| UP5c         ​| uph          | UniFi Phone                  
 +| UP5tc        | uph          | UniFi Phone-Pro ​             
 +| UP7c         ​| uph          | UniFi Phone-Executive ​       |
  
 ^ DPI Category Code ^ Name ^ ^ DPI Category Code ^ Name ^
Line 296: Line 303:
  
 </​code>​ </​code>​
 +
 +==== Update of Port Forward Rules ====
 +
 +This may apply to other configurations,​ but initial testing shows that port forward rules can be enabled/​disabled using PUT against the endpoint /​api/​s/​{site}/​rest/​portforward/​{rule-id} with a body such as:
 +<​code>​{
 +    "​enabled":​ true
 +}</​code>​
 +
 +The rule ID can be retrieved using the above described port forwarding GET request and is found in the "​_id"​ key.
 +
 +New rules can be created using POST, but be aware that there seems to be very little validation (it's possible to create entries with no information other than the fact that they'​re enabled, for example).
  • products/software/unifi-controller/api.1557208586.txt.gz
  • Last modified: 2019/05/07 01:56
  • by noderat