pynetgear
Access Netgear routers using their SOAP API
What it is and what it does
pyNetgear is a Python client for Netgear routers that communicates via the SOAP API used by the NETGEAR Genie app. It was built by reverse-engineering those requests and provides methods to log in, enumerate connected devices with signal strength and MAC addresses, retrieve traffic meter data, and block or allow specific devices from network access.
The package depends only on requests and installs as a pure-Python wheel, making setup simple. It supports a wide range of Netgear router models (R-series, WN-series, Orbi, and others documented in the description). Some operations like device blocking require remote management to be enabled in the router's admin interface, and optional parameters allow customization of host, port, SSL, and credentials.
Use it for:
- Monitor which devices are currently connected to your Netgear router and their signal strength from a Python script.
- Programmatically block or allow specific devices (by MAC address) from accessing the network based on custom logic.
- Retrieve traffic meter statistics from the router to track bandwidth usage over time.
- Build a home automation or network monitoring dashboard that queries router state without manual web interface access.
- Integrate router device discovery into network inventory or device management tools.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pyNetgear provides a Python API to communicate with Netgear routers via their SOAP interface, enabling you to query connected devices, manage traffic metrics, and control device access.
Yes, if you own a compatible Netgear router and need programmatic access to its device list or traffic metrics. The low install friction, permissive license, and stable API make it a practical choice for home automation or network monitoring. However, the dormant maintenance status (last update 2023-09-12) means you should verify compatibility with your specific router model and firmware before relying on it for critical tasks.
Install
pynetgear on PyPI
pip
pip install pynetgearuv
uv add pynetgearpoetry
poetry add pynetgearInstalling pynetgear
Before you install
Installation is straightforward with low friction—a single pure-Python wheel with only requests as a runtime dependency. The package is dormant (last release 2023-09-12, 1067 days ago) but remains stable and archived repository shows no active development.
License in practice
MIT license is permissive, allowing use in commercial and private projects with minimal restrictions.
Quickstart
pip install pynetgear
from pynetgear import Netgear
netgear = Netgear(password='your_password')
for device in netgear.get_attached_devices():
print(device)
Requires network access to a compatible Netgear router; remote management must be enabled on the router for device blocking operations.
Verify before relying
- Whether the SOAP API remains stable across current Netgear router firmware versions given the package's dormant status.
- Compatibility with routers released after 2023, as the supported router list in the description may be outdated.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — requests |
| Maintenance | dormant — 1,067 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,417/month — #14,840 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pynetgear-0.10.10-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
asusrouterAsynchronous API wrapper for querying and…
permissive · top 15,000 on PyPI
python-otbr-apiProvides a Python client to interact with an…
permissive · top 15,000 on PyPI
genie.trafficgenProvides connection implementations to traffic…
permissive · top 15,000 on PyPI
axisEstablishes connections to Axis Communications…
permissive · top 15,000 on PyPI
fritzconnectionCommunicate with AVM FRITZ!Box routers via…
permissive · top 15,000 on PyPI
PyChromecastCommunicate with Google Chromecast devices over…
permissive · top 15,000 on PyPI
napalmNAPALM provides a unified Python API to…
permissive · top 15,000 on PyPI
genieGenie is a test automation library and harness…
permissive · top 15,000 on PyPI
aioasuswrtAsync Python wrapper for querying ASUS router…
permissive · top 15,000 on PyPI
genie.libs.cleanGenie Clean provides device recovery and state…
permissive · top 15,000 on PyPI