Webhooks / Event subscriptions

In smart buildings, API data triggers automation rules. If the API reports "Zone Occupancy" is below a threshold, the system sends an MQTT command to the HVAC system to reduce air conditioning in that area, saving energy. If occupancy is high, it triggers a cleaning alert for facility management.

"timestamp": "2023-10-01T08:00:00Z", "in": 145, "out": 132, "passby": 50, "occupancy": 13 ,

Device / Sensors list

The Xovis platform utilizes a decentralized architecture where the 3D sensors themselves can compute and store data. Depending on your system design, you will interact with the Xovis API in one of two ways:

Whether you are connecting directly to or using Xovis Spider / Cloud .

Xovis has modernized its API documentation to include and Webhooks , which are essential for cloud integration.

A mall operator needs to analyze weekly traffic trends in PowerBI.

The API, accessible through the Xovis HUB or Xovis Cloud, allows for large-scale fleet management. This centralized API enables you to: Update firmware for multiple sensors simultaneously.

Security for the Xovis API is managed at the sensor configuration level rather than through a centralized API key management system.

: Integration with intermediate platforms (like IoT Open) may require Bearer token authentication.

: Configured via the sensor's WebUI. These outbound agents push raw metrics or telemetry at specified granularities or event-triggers to your custom cloud backend, IoT platforms, or local endpoints. 🛠️ Key API Functional Modules 1. Line Crossing & Counting (Telemetry)

import requests from requests.auth import HTTPBasicAuth import json # Configuration SENSOR_IP = "119.2.0.50" # Replace with your sensor's IP USERNAME = "admin" PASSWORD = "SecurePassword123" url = f"https://SENSOR_IP/api/v4/elements/lines/counts" try: # Making a secure GET request with Basic Auth # Note: In production, verify SSL certificates (verify=True) response = requests.get( url, auth=HTTPBasicAuth(USERNAME, PASSWORD), headers="Accept": "application/json", verify=False ) # Check if request was successful if response.status_code == 200: data = response.json() print("Data retrieved successfully:") print(json.dumps(data, indent=2)) # Example of iterating through line counts for line in data.get("lines", []): print(f"Line: line['elementName'] | In: line['forwardCount'] | Out: line['backwardCount']") else: print(f"Failed to connect. HTTP Status Code: response.status_code") print(response.text) except requests.exceptions.RequestException as e: print(f"An error occurred during communication: e") Use code with caution. 6. Best Practices for Developers

documentation. He realized the sensor’s "Object Classification" wasn't just identifying "Adult" or "Child." Deep in the metadata of the Extended Object Info , he found a custom tag he hadn't noticed before: Entity_Type: Residual

]