This project provides a Python-based API handler for interacting with Axis devices using the VAPIX APIs.
Install the library:
pip install git+https://github.com/silvestrinigor/axis_vapixfrom axis.vapix import basic_device_information
import requests
import requests.auth
auth = requests.auth.HTTPDigestAuth("root", "pass")
api = basic_device_information.BasicDeviceInformationRequest("192.168.0.90", 80, auth)
request = api.getProperties([basic_device_information.DevicePropertyType.ARCHITECTURE, basic_device_information.DevicePropertyType.BRAND])
with requests.Session() as session:
response = session.send(request.prepare())
print(response.text)
# Output
{"apiVersion": "1.3", "data": {"propertyList": {"Brand": "AXIS", "Architecture": "armv7hf"}}}from axis.vapix import time_api
import requests
import requests.auth
from datetime import datetime, timezone, timedelta
auth = requests.auth.HTTPDigestAuth("root", "pass")
api = time_api.TimeApiRequest("192.168.0.90", 80, auth)
time_now = datetime.now(timezone(timedelta(hours=-3)))
request = api.setDateTime(time_now)
with requests.Session() as session:
response = session.send(request.prepare())
print(response.text)
# Output
{
"apiVersion": "1.0",
"method": "setDateTime",
"data": {
"dateTime": "2025-04-09T15:51:39Z"
}
}from axis.vapix import overlay_api
import requests
import requests.auth
auth = requests.auth.HTTPDigestAuth("root", "pass")
api = overlay_api.DynamicOverlayApiRequest("192.168.0.90", 80, auth)
overlay = overlay_api.TextOverlay(
camera=1,
text=r"%d - %m - %Y - %X",
textColor=overlay_api.OverlayColorType.RED.value
)
request = api.addText(overlay)
with requests.Session() as session:
response = session.send(request.prepare())
print(response.text)
# Output
{
"apiVersion": "1.7",
"data": {
"camera": 1,
"identity": 3
},
"method": "addText"
}- Analytics Metadata Producer Configuration
- API Discovery service
- Basic device information
- Capture mode
- Firmware management API
- Loitering guard
- Network settings API
- NTP API
- AXIS Object analytics API
- Dynamic overlay API
- Time API
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository.
For any issues or questions, please file a ticket on the GitHub Issues page.