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 |
---|---|
|
UniFi network devices (access points, switches, gateways) |
|
Sites managed by the controller |
|
Client devices connected to the network |
|
Events recorded by the controller |
|
Alerts and alarms |
|
WLAN configurations |
|
Rogue access points detected |
|
Network configurations |
|
Health metrics for sites |
|
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:
- 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)
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)
start_disconnected_millis (int | None)
start_connected_millis (int | None)
startup_timestamp (int | None)
unsupported (bool | None)
disabled (bool | None)
model_name (str | None)
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:
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)
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)
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)
- 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)
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)
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)
- 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)
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)
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)
- 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])
-
subsystems:
Dict
[str
,UnifiSubsystemHealth
]
- add_subsystem(subsystem)[source]
Add a subsystem to this health object.
- Return type:
- 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:
- 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:
- 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:
_id (str)
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 (int | None)
age (int | None)
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