tplink-omada-client
Python wrapper for TP-Link Omada SDN Controller API (OC200/OC300/Software Controller)
What it is and what it does
This package wraps the TP-Link Omada controller API, allowing Python code to authenticate with and query Omada SDN controllers (OC200, OC300, or software versions). It handles login and session management automatically and exposes a subset of the controller's capabilities: site enumeration, device discovery, firmware status, port configuration for switches and access points, and WAN control for gateways. The library also includes a CLI tool for one-off queries and multi-controller management.
The package depends on aiohttp and awesomeversion for async HTTP communication and version handling. It requires Python 3.13 and is tested against Omada Controller versions 5.5.7 through 6.2.x; earlier versions like 5.0.x are explicitly incompatible. The API surface is large but only partially exposed; the maintainer notes that the platform is transitioning to OpenAPI and eventual OAuth authentication, though the current implementation uses the legacy authentication style.
Use it for:
- Automate device discovery and inventory collection from Omada-managed networks
- Monitor and control gateway WAN connections programmatically
- Retrieve firmware versions and trigger automatic updates across managed devices
- Query switch port status and configure LAN settings for access points
- Build monitoring dashboards or alerting systems that pull data from multiple Omada sites
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Python client library for interacting with TP-Link Omada SDN controllers, providing programmatic access to device management, site configuration, and network status.
Yes, if you manage TP-Link Omada networks and need programmatic access. The package is actively maintained, has low install friction, and covers common management tasks. Verify that your Omada Controller version falls within the tested range (5.5.7–6.2.x) and that the exposed API surface meets your needs, as only a subset of the controller's full capabilities is currently supported.
Install
tplink-omada-client on PyPI
pip
pip install tplink-omada-clientuv
uv add tplink-omada-clientpoetry
poetry add tplink-omada-clientInstalling tplink-omada-client
Before you install
Low install friction with only two runtime dependencies (aiohttp and awesomeversion). The package is actively maintained with a recent release, though it requires Python 3.13 or later.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both personal and commercial projects.
Quickstart
pip install tplink-omada-client
from tplink_omada_client import OmadaClient
client = OmadaClient(url='https://your.omada.controller', username='admin', password='password')
await client.login()
Requires Python 3.13 or later; version 1.5.9 specifically requires Python 3.13.
Verify before relying
- Extent of API coverage beyond the documented subset of features
- Compatibility with Omada Controller versions outside the tested range (5.5.7 - 6.2.x)
- Performance characteristics under high-frequency polling or large device counts
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.13) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — aiohttp, awesomeversion |
| Maintenance | actively maintained — 40 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 159,067/month — #10,708 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tplink_omada_client-1.5.9-py3-none-any.whl
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
python-kasaControl TP-Link Kasa and Tapo smart home…
copyleft · top 15,000 on PyPI
boschshcpyPython client library for the Bosch Smart Home…
permissive · top 15,000 on PyPI
catalystwanProvides a Python SDK for programmatic…
unclear · top 15,000 on PyPI
oktaA Python SDK for the Okta Management APIs,…
permissive · top 5,000 on PyPI
aioqswAsync Python library for controlling QNAP QSW…
permissive · top 15,000 on PyPI
os-kenos-ken is a component-based software defined…
permissive · top 15,000 on PyPI
homematicipA Python wrapper for the HomematicIP REST API…
copyleft · top 15,000 on PyPI
scc-firewall-manager-sdkProvides a Python SDK for interacting with…
unclear · top 15,000 on PyPI
nmclinmcli is a Python wrapper for the…
permissive · top 15,000 on PyPI
prisma-saseLightweight Python SDK wrapper for the Palo…
permissive · top 15,000 on PyPI