Compatibility
Which UniFi controller versions each go-unifi release supports, plus a changelog of breaking compatibility changes.
This page maps go-unifi releases to the UniFi Network controller versions they are known to work with, and
records the breaking compatibility changes between releases.
Every version on this page is a UniFi Network Application version (the application that manages your
network and serves the API). UniFi Network versions track independently of UniFi OS, the console
operating system that hosts the application — a console on UniFi OS 5.x may run UniFi Network 10.x. The
floors below (9.0.114, 10.1.78) are Network Application versions, not UniFi OS versions.
Release ↔ controller matrix
go-unifi version | Min UniFi Network | Internal API version | Official API version |
|---|---|---|---|
v2.3.0 | 9.0.114 | 9.5.21 (frozen) | 10.4.57 |
v2.2.0 | 9.0.114 | 9.5.21 (frozen) | 10.3.58 |
v2.1.0 | 9.0.114 | 9.5.21 (frozen) | 10.2.97 |
v2.0.0 | 9.0.114 | 9.5.21 (frozen) | 10.1.85 |
v1.11.0 – v1.11.1 | 5.12.35 | 9.5.21 | — |
v1.10.0 | 5.12.35 | 9.4.19 | — |
v1.9.0 – v1.9.1 | 5.12.35 | 9.3.45 | — |
v0.0.1 – v1.8.1 | 5.12.35 | 9.0.114 | — |
Only the min and latest controller versions in each row are explicitly verified. Versions in between (and newer ones released after the latest tested) are very likely supported too, but this is not checked. If you hit an issue on a specific controller version, please open an issue.
2.0.0 specifics
- The minimum controller version (
9.0.114) is set by API-key authentication — the only supported auth in 2.0.0. Old-style (classic) controllers are unsupported:NewClientreturnsErrOldStyleUnsupported. - The Internal API is frozen at
9.5.21for the 2.0.0 lifecycle. The daily codegen CI run is a deterministic no-op for the internal half, so the legacy resource set does not move forward. - The Official OpenAPI surface (
c.Official()) requires controller10.1.78or newer. Operations returnErrOfficialAPIUnavailableon older controllers. Its spec version tracks the latest committed snapshot and may update when the Official spec changes.
Two plain-text version markers at the repo root record the pinned versions, written by go generate:
.unifi-version— the Internal (legacy) API controller version..unifi-version-official— the Official OpenAPI (integration/v1) spec version (requires controller ≥10.1.78).
Compatibility changelog
2.0.0 — breaking changes
2.0.0 is a major release with several breaking changes. The headline items:
- API-key-only auth — username/password login was removed (
Login/Logoutare gone). - TLS verify by default — the old
VerifySSLfield becameSkipVerifySSL(secure-by-default zero value). - Go 1.26+ required.
NewBareClientremoved — useClientConfig.SkipSystemInfo: truefor offline/deferred construction.Clientno longer embedsLogger— callclient.Logger().Errorf(...)instead ofclient.Errorf(...).
See the full breaking changes guide and the migration guide from 1.x.
1.11.0 / UniFi Network 9.5.21
Breaking changes
ChannelPlan — trimmed down to Date and RadioTable (no replacement identified):
- removed fields
ApBlacklistedChannels,ConfSource,Coupling,Fitness,Note,Radio,Satisfaction,SatisfactionTable,SiteBlacklistedChannels - removed types
ChannelPlanApBlacklistedChannels,ChannelPlanCoupling,ChannelPlanSatisfactionTable,ChannelPlanSiteBlacklistedChannels - removed field
ChannelPlanRadioTable.BackupChannel
DeviceRadioTable — removed fields BackupChannel and ChannelOptimizationEnabled.
Additions
Network:WANDHCPv6PDSizeAuto(auto IPv6 prefix-delegation size);WANTypeacceptsdslite-over-pppoe.SettingRadioAi:HighPriorityDevices(high-priority device MACs);Radiosaccepts6e(Wi-Fi 6E band).
1.10.0 / UniFi Network 9.4.19
Breaking changes
SettingIps — DNS filtering & ad-blocking moved out into the new ContentFiltering resource:
- removed fields
DNSFiltering,DNSFilters,AdBlockingEnabled,AdBlockingConfigurations(and typesSettingIpsDNSFilters,SettingIpsAdBlockingConfigurations) - added
ContentFilteringBlockingPageEnabled
Device:
Mbbfield renamed toMbbOverrides(typeDeviceMbb→DeviceMbbOverrides)DeviceSim.Iccidremoved
ContentFiltering — new resource, replaces the removed IPS fields.
Additions
- New
ContentFilteringresource. It exposesListContentFiltering,CreateContentFiltering,UpdateContentFiltering, andDeleteContentFiltering— there is no publicGetContentFiltering(list and filter instead). Device:NutServer,DeviceCurrentApn.PDpType, andDeviceSimSIM-data fields (DataSoftLimitDisplayUnit,DataWarningThreshold,ResetDate,ResetPolicy,UseCustomApn).Network: IPv6 DHCP support (WANDHCPv6Cos,WANDHCPv6Options) and MAP-EWANTypevalues.WLANMdnsProxyCustom.ServicesModeacceptsnone; new dashboard widgets.