Data Models

The UniFi Controller API uses data classes to represent the various objects returned by the API.

Model Organization

Each model represents a specific type of data returned by the UniFi Controller API:

Model

Description

UnifiDevice

UniFi network devices (access points, switches, gateways)

UnifiSite

Sites managed by the controller

UnifiClient

Client devices connected to the network

UnifiEvent

Events recorded by the controller

UnifiAlarm

Alerts and alarms

UnifiWlanConf

WLAN configurations

UnifiRogueAp

Rogue access points detected

UnifiNetworkConf

Network configurations

UnifiHealth

Health metrics for sites

UnifiPortConf

Port configurations

Device Models

Models for UniFi devices and related objects.

class unifi_controller_api.models.device.LLDPEntry(chassis_descr=None, chassis_id=None, chassis_id_subtype=None, local_port_idx=None, local_port_name=None, port_descr=None, port_id=None, power_allocated=None, power_requested=None, is_wired=None)[source]

Bases: object

LLDP (Link Layer Discovery Protocol) information entry for a device port.

Contains information about connected neighbors discovered via LLDP.

Parameters:
  • chassis_descr (str | None)

  • chassis_id (str | None)

  • chassis_id_subtype (str | None)

  • local_port_idx (int | None)

  • local_port_name (str | None)

  • port_descr (str | None)

  • port_id (str | None)

  • power_allocated (int | None)

  • power_requested (int | None)

  • is_wired (bool | None)

chassis_descr: Optional[str] = None
chassis_id: Optional[str] = None
chassis_id_subtype: Optional[str] = None
local_port_idx: Optional[int] = None
local_port_name: Optional[str] = None
port_descr: Optional[str] = None
port_id: Optional[str] = None
power_allocated: Optional[int] = None
power_requested: Optional[int] = None
is_wired: Optional[bool] = None
class unifi_controller_api.models.device.UnifiDevice(mac, name=None, ip=None, model=None, type=None, serial=None, model_in_lts=None, model_in_eol=None, model_incompatible=None, manufacturer_id=None, board_rev=None, architecture=None, _id=None, device_id=None, hash_id=None, site_id=None, anon_id=None, version=None, adopted=None, last_seen=None, disconnected_at=None, uptime=None, state=None, disconnection_reason=None, connected_at=None, provisioned_at=None, upgrade_state=None, unsupported_reason=None, connect_request_ip=None, inform_ip=None, inform_url=None, gateway_mac=None, internet=None, site_name=None, unifi_id=None, user_num_sta=None, user_wlan_num_sta=None, guest_num_sta=None, guest_wlan_num_sta=None, rx_bytes_r=None, tx_bytes_r=None, port_table=None, radio_table=None, radio_table_stats=None, vap_table=None, ethernet_table=None, uplink_table=None, antenna_table=None, scan_radio_table=None, countrycode_table=None, vwire_table=None, config_network=None, lldp_info=<factory>, lldp_table=<factory>, fw_caps=None, hw_caps=None, wifi_caps=None, switch_caps=None, sys_error_caps=None, in_gateway_mode=None, vwireEnabled=None, has_speaker=None, has_eth1=None, has_fan=None, has_temperature=None, outdoor_mode_override=None, lcm_brightness_override=None, lcm_idle_timeout_override=None, led_override=None, led_override_color=None, led_override_color_brightness=None, atf_enabled=None, mesh_sta_vap_enabled=None, dot1x_portctrl_enabled=None, wlangroup_id_ng=None, fixed_ap_available=None, two_phase_adopt=None, cfgversion=None, kernel_version=None, country_code=None, syslog_key=None, required_version=None, setup_id=None, license_state=None, x_has_ssh_hostkey=None, x_fingerprint=None, x_vwirekey=None, x_authkey=None, x_aes_gcm=None, upgrade_to_firmware=None, uplink=None, start_disconnected_millis=None, start_connected_millis=None, startup_timestamp=None, unsupported=None, disabled=None, model_name=None, _extra_fields=<factory>)[source]

Bases: object

Represents a UniFi network device.

This class models a device managed by a UniFi controller, such as an access point, switch, gateway, or other UniFi device.

Parameters:
  • mac (str)

  • name (str | None)

  • ip (str | None)

  • model (str | None)

  • type (str | None)

  • serial (str | None)

  • model_in_lts (bool | None)

  • model_in_eol (bool | None)

  • model_incompatible (bool | None)

  • manufacturer_id (str | None)

  • board_rev (int | None)

  • architecture (str | None)

  • _id (str | None)

  • device_id (str | None)

  • hash_id (str | None)

  • site_id (str | None)

  • anon_id (str | None)

  • version (str | None)

  • adopted (bool | None)

  • last_seen (int | None)

  • disconnected_at (int | None)

  • uptime (int | None)

  • state (int | None)

  • disconnection_reason (str | None)

  • connected_at (int | None)

  • provisioned_at (int | None)

  • upgrade_state (str | None)

  • unsupported_reason (str | None)

  • connect_request_ip (str | None)

  • inform_ip (str | None)

  • inform_url (str | None)

  • gateway_mac (str | None)

  • internet (bool | None)

  • site_name (str | None)

  • unifi_id (str | None)

  • user_num_sta (int | None)

  • user_wlan_num_sta (int | None)

  • guest_num_sta (int | None)

  • guest_wlan_num_sta (int | None)

  • rx_bytes_r (int | None)

  • tx_bytes_r (int | None)

  • port_table (List[Dict[str, Any]] | None)

  • radio_table (List[Dict[str, Any]] | None)

  • radio_table_stats (List[Dict[str, Any]] | None)

  • vap_table (List[Dict[str, Any]] | None)

  • ethernet_table (List[Dict[str, Any]] | None)

  • uplink_table (List[Dict[str, Any]] | None)

  • antenna_table (List[Dict[str, Any]] | None)

  • scan_radio_table (List[Dict[str, Any]] | None)

  • countrycode_table (List[Dict[str, Any]] | None)

  • vwire_table (List[Dict[str, Any]] | None)

  • config_network (Dict[str, Any] | None)

  • lldp_info (List[LLDPEntry])

  • lldp_table (List[Dict[str, Any]])

  • fw_caps (int | None)

  • hw_caps (int | None)

  • wifi_caps (int | None)

  • switch_caps (int | None)

  • sys_error_caps (int | None)

  • in_gateway_mode (bool | None)

  • vwireEnabled (bool | None)

  • has_speaker (bool | None)

  • has_eth1 (bool | None)

  • has_fan (bool | None)

  • has_temperature (bool | None)

  • outdoor_mode_override (bool | None)

  • lcm_brightness_override (int | None)

  • lcm_idle_timeout_override (int | None)

  • led_override (bool | None)

  • led_override_color (str | None)

  • led_override_color_brightness (int | None)

  • atf_enabled (bool | None)

  • mesh_sta_vap_enabled (bool | None)

  • dot1x_portctrl_enabled (bool | None)

  • wlangroup_id_ng (str | None)

  • fixed_ap_available (bool | None)

  • two_phase_adopt (bool | None)

  • cfgversion (str | None)

  • kernel_version (str | None)

  • country_code (str | None)

  • syslog_key (str | None)

  • required_version (str | None)

  • setup_id (str | None)

  • license_state (str | None)

  • x_has_ssh_hostkey (bool | None)

  • x_fingerprint (str | None)

  • x_vwirekey (str | None)

  • x_authkey (str | None)

  • x_aes_gcm (bool | None)

  • upgrade_to_firmware (str | None)

  • uplink (Dict[str, Any] | None)

  • start_disconnected_millis (int | None)

  • start_connected_millis (int | None)

  • startup_timestamp (int | None)

  • unsupported (bool | None)

  • disabled (bool | None)

  • model_name (str | None)

  • _extra_fields (Dict[str, Any])

mac: str
name: Optional[str] = None
ip: Optional[str] = None
model: Optional[str] = None
type: Optional[str] = None
serial: Optional[str] = None
model_in_lts: Optional[bool] = None
model_in_eol: Optional[bool] = None
model_incompatible: Optional[bool] = None
manufacturer_id: Optional[str] = None
board_rev: Optional[int] = None
architecture: Optional[str] = None
device_id: Optional[str] = None
hash_id: Optional[str] = None
site_id: Optional[str] = None
anon_id: Optional[str] = None
version: Optional[str] = None
adopted: Optional[bool] = None
last_seen: Optional[int] = None
disconnected_at: Optional[int] = None
uptime: Optional[int] = None
state: Optional[int] = None
disconnection_reason: Optional[str] = None
connected_at: Optional[int] = None
provisioned_at: Optional[int] = None
upgrade_state: Optional[str] = None
unsupported_reason: Optional[str] = None
connect_request_ip: Optional[str] = None
inform_ip: Optional[str] = None
inform_url: Optional[str] = None
gateway_mac: Optional[str] = None
internet: Optional[bool] = None
site_name: Optional[str] = None
unifi_id: Optional[str] = None
user_num_sta: Optional[int] = None
user_wlan_num_sta: Optional[int] = None
guest_num_sta: Optional[int] = None
guest_wlan_num_sta: Optional[int] = None
rx_bytes_r: Optional[int] = None
tx_bytes_r: Optional[int] = None
port_table: Optional[List[Dict[str, Any]]] = None
radio_table: Optional[List[Dict[str, Any]]] = None
radio_table_stats: Optional[List[Dict[str, Any]]] = None
vap_table: Optional[List[Dict[str, Any]]] = None
ethernet_table: Optional[List[Dict[str, Any]]] = None
antenna_table: Optional[List[Dict[str, Any]]] = None
scan_radio_table: Optional[List[Dict[str, Any]]] = None
countrycode_table: Optional[List[Dict[str, Any]]] = None
vwire_table: Optional[List[Dict[str, Any]]] = None
config_network: Optional[Dict[str, Any]] = None
lldp_info: List[LLDPEntry]
lldp_table: List[Dict[str, Any]]
fw_caps: Optional[int] = None
hw_caps: Optional[int] = None
wifi_caps: Optional[int] = None
switch_caps: Optional[int] = None
sys_error_caps: Optional[int] = None
in_gateway_mode: Optional[bool] = None
vwireEnabled: Optional[bool] = None
has_speaker: Optional[bool] = None
has_eth1: Optional[bool] = None
has_fan: Optional[bool] = None
has_temperature: Optional[bool] = None
outdoor_mode_override: Optional[bool] = None
lcm_brightness_override: Optional[int] = None
lcm_idle_timeout_override: Optional[int] = None
led_override: Optional[bool] = None
led_override_color: Optional[str] = None
led_override_color_brightness: Optional[int] = None
atf_enabled: Optional[bool] = None
mesh_sta_vap_enabled: Optional[bool] = None
dot1x_portctrl_enabled: Optional[bool] = None
wlangroup_id_ng: Optional[str] = None
fixed_ap_available: Optional[bool] = None
two_phase_adopt: Optional[bool] = None
cfgversion: Optional[str] = None
kernel_version: Optional[str] = None
country_code: Optional[str] = None
syslog_key: Optional[str] = None
required_version: Optional[str] = None
setup_id: Optional[str] = None
license_state: Optional[str] = None
x_has_ssh_hostkey: Optional[bool] = None
x_fingerprint: Optional[str] = None
x_vwirekey: Optional[str] = None
x_authkey: Optional[str] = None
x_aes_gcm: Optional[bool] = None
upgrade_to_firmware: Optional[str] = None
start_disconnected_millis: Optional[int] = None
start_connected_millis: Optional[int] = None
startup_timestamp: Optional[int] = None
unsupported: Optional[bool] = None
disabled: Optional[bool] = None
model_name: Optional[str] = None
__post_init__()[source]

Process object initialization.

  • Convert lldp_table to lldp_info if present

  • Ensure nested LLDP entries are properly typed

to_dict()[source]

Convert the UnifiDevice to a dictionary.

Return type:

Dict[str, Any]

Returns:

Dictionary representation of the device with all fields.

Site Models

Models for UniFi sites and related objects.

class unifi_controller_api.models.site.UnifiSite(name, desc=None, health=None, _id=None, anonymous_id=None, attr_hidden_id=None, attr_no_delete=None, num_new_alarms=None, role=None, device_count=None, _extra_fields=<factory>)[source]

Bases: object

Represents a UniFi site.

A site in UniFi represents a logical grouping of devices and network segments, typically representing a physical location or organization.

Parameters:
  • name (str)

  • desc (str | None)

  • health (List[Dict[str, Any]] | None)

  • _id (str | None)

  • anonymous_id (str | None)

  • attr_hidden_id (str | None)

  • attr_no_delete (bool | None)

  • num_new_alarms (int | None)

  • role (str | None)

  • device_count (int | None)

  • _extra_fields (Dict[str, Any])

name: str
desc: Optional[str] = None
health: Optional[List[Dict[str, Any]]] = None
anonymous_id: Optional[str] = None
attr_hidden_id: Optional[str] = None
attr_no_delete: Optional[bool] = None
num_new_alarms: Optional[int] = None
role: Optional[str] = None
device_count: Optional[int] = None
get_subsystem(subsystem_name)[source]

Get data for a specific subsystem by name.

Parameters:

subsystem_name (str) – Name of the subsystem to retrieve

Return type:

Optional[Dict[str, Any]]

Returns:

Subsystem data dictionary if found, None otherwise

get_wlan_metric(metric_name)[source]

Get a specific metric from the WLAN subsystem health data.

Parameters:

metric_name (str) – Name of the metric to retrieve

Return type:

Optional[Any]

Returns:

The metric value if found, None otherwise

to_dict()[source]

Convert the UnifiSite to a dictionary.

Return type:

Dict[str, Any]

Returns:

Dictionary representation of the site with all fields.

Client Models

class unifi_controller_api.models.client.UnifiClient(_id, mac, site_id, oui=None, first_seen=None, last_seen=None, disconnect_timestamp=None, ip=None, is_guest=None, is_wired=None, hostname=None, name=None, noted=None, note=None, usergroup_id=None, network_id=None, fixed_ip=None, wlanconf_id=None)[source]

Bases: object

Represents a client (user device) connected to the UniFi network (using dataclass, raw types).

Variables:
  • _id – Unique identifier for the client.

  • mac – MAC address of the client.

  • site_id – Identifier for the site the client is connected to.

  • oui – Organizationally Unique Identifier.

  • first_seen – Timestamp of when the client was first seen.

  • last_seen – Timestamp of when the client was last seen.

  • disconnect_timestamp – Timestamp of when the client was disconnected.

  • ip – IP address assigned to the client.

  • is_guest – Indicates if the client is a guest.

  • is_wired – Indicates if the client is connected via wired connection.

  • hostname – Hostname of the client.

  • name – Name of the client.

  • noted – Indicates if the client has been noted.

  • note – Additional notes about the client.

  • usergroup_id – Identifier for the user group.

  • network_id – Identifier for the network.

  • fixed_ip – Fixed IP address assigned to the client.

  • wlanconf_id – Identifier for the WLAN configuration.

Parameters:
  • _id (str)

  • mac (str)

  • site_id (str)

  • oui (str | None)

  • first_seen (int | None)

  • last_seen (int | None)

  • disconnect_timestamp (int | None)

  • ip (str | None)

  • is_guest (bool | None)

  • is_wired (bool | None)

  • hostname (str | None)

  • name (str | None)

  • noted (bool | None)

  • note (str | None)

  • usergroup_id (str | None)

  • network_id (str | None)

  • fixed_ip (str | None)

  • wlanconf_id (str | None)

mac: str
site_id: str
oui: Optional[str] = None
first_seen: Optional[int] = None
last_seen: Optional[int] = None
disconnect_timestamp: Optional[int] = None
ip: Optional[str] = None
is_guest: Optional[bool] = None
is_wired: Optional[bool] = None
hostname: Optional[str] = None
name: Optional[str] = None
noted: Optional[bool] = None
note: Optional[str] = None
usergroup_id: Optional[str] = None
network_id: Optional[str] = None
fixed_ip: Optional[str] = None
wlanconf_id: Optional[str] = None

Network Configuration Models

class unifi_controller_api.models.networkconf.UnifiNetworkConf(_id, name, site_id, enabled, purpose, is_nat=None, vlan_enabled=None, vlan=None, networkgroup=None, igmp_snooping=None, dhcpguard_enabled=None, mdns_enabled=None, ip_subnet=None, domain_name=None, dhcpd_enabled=None, dhcpd_start=None, dhcpd_stop=None, dhcpd_leasetime=None, dhcpd_gateway_enabled=None, dhcpd_dns_enabled=None, dhcpd_dns_1=None, dhcpd_dns_2=None, dhcp_relay_enabled=None, lte_lan_enabled=None, auto_scale_enabled=None, attr_hidden_id=None, attr_no_delete=None, setting_preference=None, dhcpd_time_offset_enabled=None, _extra_fields=<factory>)[source]

Bases: object

Represents a network configuration (LAN, VLAN, etc.) from UniFi.

Parameters:
  • _id (str)

  • name (str)

  • site_id (str)

  • enabled (bool)

  • purpose (str)

  • is_nat (bool | None)

  • vlan_enabled (bool | None)

  • vlan (str | int | None)

  • networkgroup (str | None)

  • igmp_snooping (bool | None)

  • dhcpguard_enabled (bool | None)

  • mdns_enabled (bool | None)

  • ip_subnet (str | None)

  • domain_name (str | None)

  • dhcpd_enabled (bool | None)

  • dhcpd_start (str | None)

  • dhcpd_stop (str | None)

  • dhcpd_leasetime (int | None)

  • dhcpd_gateway_enabled (bool | None)

  • dhcpd_dns_enabled (bool | None)

  • dhcpd_dns_1 (str | None)

  • dhcpd_dns_2 (str | None)

  • dhcp_relay_enabled (bool | None)

  • lte_lan_enabled (bool | None)

  • auto_scale_enabled (bool | None)

  • attr_hidden_id (str | None)

  • attr_no_delete (bool | None)

  • setting_preference (str | None)

  • dhcpd_time_offset_enabled (bool | None)

  • _extra_fields (Dict[str, Any])

name: str
site_id: str
enabled: bool
purpose: str
is_nat: Optional[bool] = None
vlan_enabled: Optional[bool] = None
vlan: Union[str, int, None] = None
networkgroup: Optional[str] = None
igmp_snooping: Optional[bool] = None
dhcpguard_enabled: Optional[bool] = None
mdns_enabled: Optional[bool] = None
ip_subnet: Optional[str] = None
domain_name: Optional[str] = None
dhcpd_enabled: Optional[bool] = None
dhcpd_start: Optional[str] = None
dhcpd_stop: Optional[str] = None
dhcpd_leasetime: Optional[int] = None
dhcpd_gateway_enabled: Optional[bool] = None
dhcpd_dns_enabled: Optional[bool] = None
dhcpd_dns_1: Optional[str] = None
dhcpd_dns_2: Optional[str] = None
dhcp_relay_enabled: Optional[bool] = None
lte_lan_enabled: Optional[bool] = None
auto_scale_enabled: Optional[bool] = None
attr_hidden_id: Optional[str] = None
attr_no_delete: Optional[bool] = None
setting_preference: Optional[str] = None
dhcpd_time_offset_enabled: Optional[bool] = None
to_dict()[source]

Converts the dataclass instance to a dictionary for API responses.

Return type:

Dict[str, Any]

class unifi_controller_api.models.wlanconf.UnifiWlanConf(_id, name, site_id, enabled, security, wpa_mode, wpa_enc, wpa3_support, wpa3_transition, pmf_mode, networkconf_id, usergroup_id, schedule_enabled, bss_transition, minrate_setting_preference, minrate_na_enabled, minrate_na_data_rate_kbps, minrate_ng_enabled, minrate_ng_data_rate_kbps, mac_filter_enabled, mac_filter_policy, hide_ssid=None, l2_isolation=None, mcastenhance_enabled=None, proxy_arp=None, fast_roaming_enabled=None, optimize_iot_wifi_connectivity=None, x_passphrase=None, wlan_band=None, wlan_bands=<factory>, ap_group_ids=<factory>, schedule=<factory>, mac_filter_list=<factory>, setting_preference=None, dtim_6e=None, dtim_na=None, dtim_ng=None, dtim_mode='default', minrate_na_advertising_rates=None, minrate_ng_advertising_rates=None, b_supported=None, radius_das_enabled=None, group_rekey=3600, radius_macacl_format='none_lower', bc_filter_enabled=False, bc_filter_list=<factory>, iapp_enabled=None, uapsd_enabled=False, no2ghz_oui=None, x_iapp_key=None, wep_idx=1, wpa3_fast_roaming=None, radius_mac_auth_enabled=False, wpa3_enhanced_192=False, _extra_fields=<factory>)[source]

Bases: object

Represents a WLAN configuration entry from the UniFi Controller API.

Variables:
  • _id – Unique identifier for the WLAN configuration.

  • name – The SSID (network name) of the WLAN.

  • site_id – Identifier of the site this WLAN belongs to.

  • enabled – Whether the WLAN is currently active.

  • security – Security mode (e.g., ‘wpapsk’).

  • wpa_mode – WPA mode (e.g., ‘wpa2’).

  • wpa_enc – WPA encryption type (e.g., ‘ccmp’).

  • wpa3_support – Whether WPA3 is supported.

  • wpa3_transition – Whether WPA3 transition mode is enabled.

  • pmf_mode – Protected Management Frames mode (e.g., ‘disabled’, ‘optional’, ‘required’).

  • x_passphrase – The WPA pre-shared key (password). Will be masked in dict output.

  • wlan_band – The primary band (‘ng’, ‘na’, ‘both’). Deprecated in newer controllers?

  • wlan_bands – List of bands the WLAN operates on (e.g., [‘2g’, ‘5g’]).

  • hide_ssid – Whether the SSID is hidden.

  • networkconf_id – Identifier for the associated network configuration.

  • usergroup_id – Identifier for the user group associated with this WLAN.

  • ap_group_ids – List of AP group IDs this WLAN is restricted to (if any).

  • schedule_enabled – Whether a schedule is enabled for this WLAN.

  • schedule – List of schedule rules (usually empty if schedule_enabled is False).

  • l2_isolation – Whether Layer 2 isolation is enabled.

  • mcastenhance_enabled – Whether multicast enhancement (IGMPv3) is enabled.

  • proxy_arp – Whether proxy ARP is enabled.

  • bss_transition – Whether BSS Transition (802.11v) is enabled.

  • fast_roaming_enabled – Whether Fast Roaming (802.11r) is enabled.

  • optimize_iot_wifi_connectivity – Whether IoT optimization is enabled.

  • minrate_setting_preference – Min rate setting preference (‘auto’ or ‘manual’).

  • minrate_na_enabled – Whether minimum data rate control is enabled for 5GHz.

  • minrate_na_data_rate_kbps – Minimum data rate for 5GHz in Kbps.

  • minrate_ng_enabled – Whether minimum data rate control is enabled for 2.4GHz.

  • minrate_ng_data_rate_kbps – Minimum data rate for 2.4GHz in Kbps.

  • mac_filter_enabled – Whether MAC filtering is enabled.

  • mac_filter_policy – MAC filter policy (‘allow’ or ‘deny’).

  • mac_filter_list – List of MAC addresses for filtering.

  • structure (# Add other fields as needed from the JSON)

  • setting_preference – Optional[str] = None

  • dtim_6e – Optional[int] = None

  • dtim_na – Optional[int] = None

  • dtim_ng – Optional[int] = None

  • dtim_mode – Optional[str] = None

  • minrate_na_advertising_rates – Optional[bool] = None

  • minrate_ng_advertising_rates – Optional[bool] = None

  • b_supported – Optional[bool] = None # Legacy 802.11b support

  • radius_das_enabled – Optional[bool] = None

  • group_rekey – Optional[int] = None # Group rekey interval in seconds

  • radius_macacl_format – Optional[str] = None

  • bc_filter_enabled – Optional[bool] = None # Broadcast filter enabled

  • bc_filter_list – List[str] = field(default_factory=list)

  • iapp_enabled – Optional[bool] = None # Inter-Access Point Protocol (802.11f)

  • uapsd_enabled – Optional[bool] = None # Unscheduled Automatic Power Save Delivery

  • no2ghz_oui – Optional[bool] = None

  • x_iapp_key – Optional[str] = None

  • wep_idx – Optional[int] = None # WEP key index (only relevant for WEP security)

  • wpa3_fast_roaming – Optional[bool] = None

  • radius_mac_auth_enabled – Optional[bool] = None

  • wpa3_enhanced_192 – Optional[bool] = None

  • _extra_fields – Dict[str, Any] = field(default_factory=dict, repr=False) # Store unmapped fields

Parameters:
  • _id (str)

  • name (str)

  • site_id (str)

  • enabled (bool)

  • security (str)

  • wpa_mode (str)

  • wpa_enc (str)

  • wpa3_support (bool)

  • wpa3_transition (bool)

  • pmf_mode (str)

  • networkconf_id (str)

  • usergroup_id (str)

  • schedule_enabled (bool)

  • bss_transition (bool)

  • minrate_setting_preference (str)

  • minrate_na_enabled (bool)

  • minrate_na_data_rate_kbps (int)

  • minrate_ng_enabled (bool)

  • minrate_ng_data_rate_kbps (int)

  • mac_filter_enabled (bool)

  • mac_filter_policy (str)

  • hide_ssid (bool | None)

  • l2_isolation (bool | None)

  • mcastenhance_enabled (bool | None)

  • proxy_arp (bool | None)

  • fast_roaming_enabled (bool | None)

  • optimize_iot_wifi_connectivity (bool | None)

  • x_passphrase (str | None)

  • wlan_band (str | None)

  • wlan_bands (List[str])

  • ap_group_ids (List[str])

  • schedule (List[Dict[str, Any]])

  • mac_filter_list (List[str])

  • setting_preference (str | None)

  • dtim_6e (int | None)

  • dtim_na (int | None)

  • dtim_ng (int | None)

  • dtim_mode (str | None)

  • minrate_na_advertising_rates (bool | None)

  • minrate_ng_advertising_rates (bool | None)

  • b_supported (bool | None)

  • radius_das_enabled (bool | None)

  • group_rekey (int | None)

  • radius_macacl_format (str | None)

  • bc_filter_enabled (bool | None)

  • bc_filter_list (List[str])

  • iapp_enabled (bool | None)

  • uapsd_enabled (bool | None)

  • no2ghz_oui (bool | None)

  • x_iapp_key (str | None)

  • wep_idx (int | None)

  • wpa3_fast_roaming (bool | None)

  • radius_mac_auth_enabled (bool | None)

  • wpa3_enhanced_192 (bool | None)

  • _extra_fields (Dict[str, Any])

name: str
site_id: str
enabled: bool
security: str
wpa_mode: str
wpa_enc: str
wpa3_support: bool
wpa3_transition: bool
pmf_mode: str
networkconf_id: str
usergroup_id: str
schedule_enabled: bool
bss_transition: bool
minrate_setting_preference: str
minrate_na_enabled: bool
minrate_na_data_rate_kbps: int
minrate_ng_enabled: bool
minrate_ng_data_rate_kbps: int
mac_filter_enabled: bool
mac_filter_policy: str
hide_ssid: Optional[bool] = None
l2_isolation: Optional[bool] = None
mcastenhance_enabled: Optional[bool] = None
proxy_arp: Optional[bool] = None
fast_roaming_enabled: Optional[bool] = None
optimize_iot_wifi_connectivity: Optional[bool] = None
x_passphrase: Optional[str] = None
wlan_band: Optional[str] = None
wlan_bands: List[str]
ap_group_ids: List[str]
schedule: List[Dict[str, Any]]
mac_filter_list: List[str]
setting_preference: Optional[str] = None
dtim_6e: Optional[int] = None
dtim_na: Optional[int] = None
dtim_ng: Optional[int] = None
dtim_mode: Optional[str] = 'default'
minrate_na_advertising_rates: Optional[bool] = None
minrate_ng_advertising_rates: Optional[bool] = None
b_supported: Optional[bool] = None
radius_das_enabled: Optional[bool] = None
group_rekey: Optional[int] = 3600
radius_macacl_format: Optional[str] = 'none_lower'
bc_filter_enabled: Optional[bool] = False
bc_filter_list: List[str]
iapp_enabled: Optional[bool] = None
uapsd_enabled: Optional[bool] = False
no2ghz_oui: Optional[bool] = None
x_iapp_key: Optional[str] = None
wep_idx: Optional[int] = 1
wpa3_fast_roaming: Optional[bool] = None
radius_mac_auth_enabled: Optional[bool] = False
wpa3_enhanced_192: Optional[bool] = False
to_dict()[source]

Converts the dataclass instance to a dictionary, masking the passphrase.

Return type:

Dict[str, Any]

__post_init__()[source]

Handle potential type inconsistencies after initialization.

class unifi_controller_api.models.portconf.UnifiPortConf(_id=None, name=None, site_id=None, setting_preference=None, op_mode=None, autoneg=None, poe_mode=None, forward=None, native_networkconf_id=None, voice_networkconf_id=None, excluded_networkconf_ids=<factory>, isolation=None, dot1x_ctrl=None, dot1x_idle_timeout=None, stormctrl_bcast_enabled=None, stormctrl_bcast_rate=None, stormctrl_mcast_enabled=None, stormctrl_mcast_rate=None, stormctrl_ucast_enabled=None, stormctrl_ucast_rate=None, egress_rate_limit_kbps_enabled=None, egress_rate_limit_kbps=None, stp_port_mode=None, lldpmed_enabled=None, lldpmed_notify_enabled=None, _extra_fields=<factory>)[source]

Bases: object

Represents a UniFi switch port profile configuration.

Port profiles define settings that can be applied to switch ports, including operation mode, PoE settings, VLAN configurations, and security controls.

Parameters:
  • _id (str | None)

  • name (str | None)

  • site_id (str | None)

  • setting_preference (str | None)

  • op_mode (str | None)

  • autoneg (bool | None)

  • poe_mode (str | None)

  • forward (str | None)

  • native_networkconf_id (str | None)

  • voice_networkconf_id (str | None)

  • excluded_networkconf_ids (List[str])

  • isolation (bool | None)

  • dot1x_ctrl (str | None)

  • dot1x_idle_timeout (int | None)

  • stormctrl_bcast_enabled (bool | None)

  • stormctrl_bcast_rate (int | None)

  • stormctrl_mcast_enabled (bool | None)

  • stormctrl_mcast_rate (int | None)

  • stormctrl_ucast_enabled (bool | None)

  • stormctrl_ucast_rate (int | None)

  • egress_rate_limit_kbps_enabled (bool | None)

  • egress_rate_limit_kbps (int | None)

  • stp_port_mode (bool | None)

  • lldpmed_enabled (bool | None)

  • lldpmed_notify_enabled (bool | None)

  • _extra_fields (Dict[str, Any])

name: Optional[str] = None
site_id: Optional[str] = None
setting_preference: Optional[str] = None
op_mode: Optional[str] = None
autoneg: Optional[bool] = None
poe_mode: Optional[str] = None
forward: Optional[str] = None
native_networkconf_id: Optional[str] = None
voice_networkconf_id: Optional[str] = None
excluded_networkconf_ids: List[str]
isolation: Optional[bool] = None
dot1x_ctrl: Optional[str] = None
dot1x_idle_timeout: Optional[int] = None
stormctrl_bcast_enabled: Optional[bool] = None
stormctrl_bcast_rate: Optional[int] = None
stormctrl_mcast_enabled: Optional[bool] = None
stormctrl_mcast_rate: Optional[int] = None
stormctrl_ucast_enabled: Optional[bool] = None
stormctrl_ucast_rate: Optional[int] = None
egress_rate_limit_kbps_enabled: Optional[bool] = None
egress_rate_limit_kbps: Optional[int] = None
stp_port_mode: Optional[bool] = None
lldpmed_enabled: Optional[bool] = None
lldpmed_notify_enabled: Optional[bool] = None

Health Models

Models for UniFi health data and related objects.

class unifi_controller_api.models.health.UnifiSubsystemHealth(subsystem, status=None, num_user=None, num_guest=None, num_iot=None, tx_bytes_r=None, rx_bytes_r=None, num_ap=None, num_sw=None, num_gw=None, num_adopted=None, num_disabled=None, num_disconnected=None, num_pending=None, _extra_fields=<factory>)[source]

Bases: object

Represents health data for a specific UniFi subsystem.

Subsystems can include: wlan, lan, vpn, www, wan, etc. Each subsystem can have different metrics, but they all share a common “status” indicator.

Parameters:
  • subsystem (str)

  • status (str | None)

  • num_user (int | None)

  • num_guest (int | None)

  • num_iot (int | None)

  • tx_bytes_r (int | None)

  • rx_bytes_r (int | None)

  • num_ap (int | None)

  • num_sw (int | None)

  • num_gw (int | None)

  • num_adopted (int | None)

  • num_disabled (int | None)

  • num_disconnected (int | None)

  • num_pending (int | None)

  • _extra_fields (Dict[str, Any])

subsystem: str
status: Optional[str] = None
num_user: Optional[int] = None
num_guest: Optional[int] = None
num_iot: Optional[int] = None
tx_bytes_r: Optional[int] = None
rx_bytes_r: Optional[int] = None
num_ap: Optional[int] = None
num_sw: Optional[int] = None
num_gw: Optional[int] = None
num_adopted: Optional[int] = None
num_disabled: Optional[int] = None
num_disconnected: Optional[int] = None
num_pending: Optional[int] = None
to_dict()[source]

Convert to dictionary, excluding None values and internal fields.

Return type:

Dict[str, Any]

class unifi_controller_api.models.health.UnifiHealth(site_name, subsystems=<factory>)[source]

Bases: object

Represents comprehensive health data for a UniFi site.

This acts as a container for all subsystem health data associated with a specific site.

Parameters:
site_name: str
subsystems: Dict[str, UnifiSubsystemHealth]
to_dict()[source]

Convert to dictionary with subsystems expanded to dictionaries.

Return type:

Dict[str, Any]

add_subsystem(subsystem)[source]

Add a subsystem to this health object.

Return type:

None

Parameters:

subsystem (UnifiSubsystemHealth)

Event and Alert Models

class unifi_controller_api.models.event.UnifiEvent(_id, key, time, datetime, msg, site_id, subsystem=None, is_admin=None, admin=None, ip=None, is_negative=None, _extra_fields=<factory>)[source]

Bases: object

Represents a single event entry from the UniFi Controller API (/api/s/<site_name>/stat/event).

Parameters:
key: str
time: int
datetime: str
msg: str
site_id: str
subsystem: Optional[str] = None
is_admin: Optional[bool] = None
admin: Optional[str] = None
ip: Optional[str] = None
is_negative: Optional[bool] = None
__post_init__()[source]

Ensure timestamp is integer.

to_dict()[source]

Converts the dataclass instance to a dictionary.

Return type:

Dict[str, Any]

class unifi_controller_api.models.alarm.UnifiAlarm(_id, key, time, datetime, msg, site_id, archived=None, subsystem=None, is_negative=None, usable_bytes=None, total_bytes=None, _extra_fields=<factory>)[source]

Bases: object

Represents a single alarm entry from the UniFi Controller API (/api/s/<site_name>/stat/alarm).

Parameters:
  • _id (str)

  • key (str)

  • time (int)

  • datetime (str)

  • msg (str)

  • site_id (str)

  • archived (bool | None)

  • subsystem (str | None)

  • is_negative (bool | None)

  • usable_bytes (int | None)

  • total_bytes (int | None)

  • _extra_fields (Dict[str, Any])

key: str
time: int
datetime: str
msg: str
site_id: str
archived: Optional[bool] = None
subsystem: Optional[str] = None
is_negative: Optional[bool] = None
usable_bytes: Optional[int] = None
total_bytes: Optional[int] = None
__post_init__()[source]

Ensure timestamp is integer.

to_dict()[source]

Converts the dataclass instance to a dictionary.

Return type:

Dict[str, Any]

class unifi_controller_api.models.rogueap.UnifiRogueAp(_id, ap_mac, bssid, band, bw, channel, essid, freq, is_adhoc, is_rogue, is_ubnt, last_seen, noise, oui, radio, radio_name, report_time, rssi, rssi_age, security, signal, site_id, center_freq=None, age=None, _extra_fields=<factory>)[source]

Bases: object

Represents a neighboring or potentially rogue access point detected by UniFi.

Parameters:
ap_mac: str
bssid: str
band: str
bw: int
channel: int
essid: str
freq: int
is_adhoc: bool
is_rogue: bool
is_ubnt: bool
last_seen: int
noise: int
oui: str
radio: str
radio_name: str
report_time: int
rssi: int
rssi_age: int
security: str
signal: int
site_id: str
center_freq: Optional[int] = None
age: Optional[int] = None
to_dict()[source]

Converts the dataclass instance to a dictionary for API responses.

Return type:

Dict[str, Any]

Common Model Behavior

All model classes inherit from a base dataclass and provide common functionality:

  • JSON serialization/deserialization

  • Handling of “extra” properties not defined in the dataclass

  • Type conversion for known fields