If you manage Axis cameras on modern AXIS OS 12.x, you’ve probably felt the pain of broken multicast discovery or missing legacy app-config endpoints. The new AXIS VAPIX API Tools project solves that with a lightweight trio of Python utilities that discover cameras, inventory firmware and hardware details, and even manage ACAP packages—all without needing SSDP.
Get the Code and/or Windows Prebuilt Executables: https://github.com/jsammarco/AXIS_VAPIX_API_TOOLS

Why this matters
- Discovery that survives AXIS OS 12.x changes: The toolkit scans subnets directly against the VAPIX Basic Device Info API, so it works even when multicast is off the table.
- Complete device inventory in one pass: Hostname, IP, model, product name, serial number, and firmware are printed in a single summary view—ideal for audits and fleet hygiene.
- ACAP visibility and control: You can list installed apps, see their Running/Stopped/Idle status, and pull per-app settings via the VAPIX Parameter API—crucial when list.cgi no longer exposes config on newer firmware.
- Built for speed: Parallel workers and optional tqdm progress bars keep scans quick, even across a /24.
What’s inside
- discover_axis_vapix.py – Scans a subnet, fingerprints Axis devices, lists ACAP apps, and extracts app-specific parameters from a full param dump (the most reliable path on AXIS OS 12.x).
- acap_update_app.py – Stops/removes existing ACAP packages, uploads a new
.eap, and restarts the app across one IP or an entire subnet with parallel workers. - acap_update_config.py – Applies configuration changes from a simple key=value file without replacing the package, perfect for bulk tuning after deployment.
Quick start
Install the tiny dependency set (Python 3.8+, requests, and optional tqdm), then point the discovery tool at your LAN:
pip install requests tqdm
python discover_axis_vapix.py --subnet 192.168.1.0/24 --user root --passw "yourPassword"
Updating apps at scale
Rolling out a new ACAP build? Push it to every camera in a subnet with one command:
python acap_update_app.py --subnet 192.168.1.0/24 --user root --passw "yourPassword" --package MyAcap --eap /path/to/MyAcap.eap --workers 32
Credentials enable upload/control calls, while --workers keeps things moving quickly on larger networks.
Why it’s perfect for integrators and MSPs
- Reduced truck rolls: Collects inventory and app state remotely, so you can triage before dispatch.
- Safer rollouts: Parallel but configurable worker counts and per-call timeouts let you tune aggressiveness vs. stability.
- Future-proofed: Relies on VAPIX endpoints that remain available on AXIS OS 12.x, avoiding deprecated discovery paths.
Try it out
Grab the Win32 prebuilt binaries or run the Python scripts directly, then fold these tools into your next maintenance window. Faster discovery, safer ACAP rollouts, and reliable config snapshots are just a single command away. https://github.com/jsammarco/AXIS_VAPIX_API_TOOLS