axis
A Python library for communicating with devices from Axis Communications
What it is and what it does
axis is a Python library for communicating with Axis Communications network devices (cameras, intercoms, etc.) using the Vapix API. It handles device discovery, authentication, and typed request/response contracts for querying device capabilities and subscribing to event streams. The library organizes handlers into initialization phases (API_DISCOVERY, PARAM_CGI_FALLBACK, APPLICATION) and exposes both low-level API access and higher-level event models.
The package is built around async I/O using aiohttp and includes an optional interactive CLI for device exploration. It's designed to be reusable by non-CLI consumers through presentation-agnostic domain layers. The library requires Python 3.14.0 and has been actively maintained since its initial release.
Use it for:
- Integrate Axis network cameras into home automation systems to query device status and subscribe to motion/audio events.
- Build a device management tool that discovers Axis devices on a network and exposes their capabilities through a typed API.
- Monitor Axis devices for specific events and trigger downstream actions based on event subscriptions.
- Automate configuration tasks on Axis devices by reading and writing parameters through the Vapix API.
- Develop a CLI utility to explore and test Axis device APIs without writing custom HTTP code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Establishes connections to Axis Communications devices and subscribes to events on their metadata streams, providing typed request/response interfaces and device discovery.
Yes. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive MIT license. It's well-suited for anyone integrating Axis Communications devices into Python applications or home automation systems. The only constraint is the requirement for Python 3.14.0 or later.
Install
axis on PyPI
pip
pip install axisuv
uv add axispoetry
poetry add axisInstalling axis
Before you install
Low friction install with a pure-Python wheel. Actively maintained with a recent release and no known vulnerabilities. Eight runtime dependencies are all well-established packages.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
pip install axis
from axis.vapix import Vapix
from axis.models import ApiRequest
# Create a Vapix instance to communicate with an Axis device
vapix = Vapix(host='device_ip', username='root', password='pass')
await vapix.initialize()
Requires Python 3.14.0 or later; async/await patterns require an asyncio event loop.
Verify before relying
- Whether the package supports older Axis device models or only recent firmware versions.
- Performance characteristics when handling high-frequency event streams from multiple devices.
- Whether CLI features are stable or still experimental given the development-focused documentation.
- Specific example IP addresses or device configurations for typical deployment scenarios.
Package facts
| License | MIT (permissive) |
| Python support | capped below the current Python release (>=3.14.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — aiohttp, faust-cchardet, orjson, packaging, tomli, tomli-w, xmltodict, zeroconf |
| Maintenance | actively maintained — 40 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 81,047/month — #14,254 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: axis-74-py3-none-any.whl
Keywords: axis, vapix, homeassistant
Tags
More Home Automation packages
Represents and manipulates IPv4, IPv6, MAC…
permissive · top 5,000 on PyPI
homeassistantHome Assistant is an open-source home…
permissive · top 5,000 on PyPI
python-statemachineDefines finite state machines and statecharts…
permissive · top 5,000 on PyPI
btsocketA Python library for controlling BlueZ…
permissive · top 15,000 on PyPI
aiohomematicAn async Python library for controlling and…
permissive · top 15,000 on PyPI
hass-web-proxy-libProvides base classes and utilities for Home…
permissive · top 15,000 on PyPI
ha-garminPython client for the Garmin Connect API with…
permissive · top 15,000 on PyPI
meross-iotA Python library for controlling Meross IoT…
permissive · top 15,000 on PyPI
pynetgearpyNetgear provides a Python API to communicate…
permissive · top 15,000 on PyPI
asusrouterAsynchronous API wrapper for querying and…
permissive · top 15,000 on PyPI
wiimwiim provides a Python API to discover,…
permissive · top 15,000 on PyPI
aioasuswrtAsync Python wrapper for querying ASUS router…
permissive · top 15,000 on PyPI
omnibase_spiDefines runtime-checkable Protocol contracts…
permissive · top 15,000 on PyPI
airthings-cloudA Python library for communicating with…
permissive · top 15,000 on PyPI
vllm-routerRoutes and load-balances requests across vLLM…
permissive · top 15,000 on PyPI
aiohomekitAn asyncio-based HomeKit client library for…
permissive · top 15,000 on PyPI