Hardware Messages Report
Raw GPS hardware messages per device — positions, events, sensors, and signal data.
GET
/apidev/v1/reports/general/hardwarePermissionAPICLI_RPTAVL_HARDWARE
Rate Limit10 req/min
Cache300s
Max Range31 days
Request
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startdate | string | Yes | — | ISO 8601 start date-time (e.g. 2026-03-15T00:00:00). |
enddate | string | Yes | — | ISO 8601 end date-time. Max range 31 days from startdate. |
device_id | number | Yes | — | Single device ID (numeric, min 1). This report is per single device. |
dis_id | number | No | — | Device sub-ID. |
event | string | No | — | Event code filter. Max length 50. |
limit | integer | No | 25 | Number of records per page (1–100). |
offset | integer | No | 0 | Number of records to skip for pagination. |
Code Examples
- cURL
- JavaScript
- Python
curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/reports/general/hardware?startdate=2026-03-15T00:00:00&enddate=2026-03-18T23:59:59&device_id=105&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/general/hardware?startdate=2026-03-15T00:00:00&enddate=2026-03-18T23:59:59&device_id=105&limit=25`,
{
headers: {
'Authorization': `Bearer ${token}`,
'X-API-Key': apiKey,
'tenant': TENANT,
},
}
);
const data = await res.json();
import requests
response = requests.get(
f"https://{TENANT}/apidev/v1/reports/general/hardware",
headers={"Authorization": f"Bearer {token}", "X-API-Key": api_key, "tenant": TENANT},
params={"startdate": "2026-03-15T00:00:00", "enddate": "2026-03-18T23:59:59", "device_id": 105, "limit": 25},
)
data = response.json()
Response
Response Fields
| Field | Type | Description |
|---|---|---|
received_at | string | null | Server receive timestamp. |
gps_datetime | string | null | GPS timestamp. |
imei | string | Device IMEI. |
person_name | string | Driver name. |
event_code | string | Event code. |
event_name | string | Event description. |
latitude | number | null | Latitude. |
longitude | number | null | Longitude. |
valid | boolean | null | GPS fix valid. |
speed | number | Speed (km/h). |
heading | number | Heading (0-360). |
odometer | number | Odometer (km). |
address | string | Reverse-geocoded address. |
temperature | number | null | Temperature sensor. |
battery | number | null | Battery voltage. |
pois | string | Nearby POIs. |
geofences | string | Matching geofences. |
Example Response
{
"success": true,
"data": [
{
"received_at": "2026-03-15T08:30:15",
"gps_datetime": "2026-03-15T08:30:12",
"imei": "353456789012345",
"person_name": "Carlos Martinez",
"event_code": "01",
"event_name": "Periodic report",
"latitude": 19.4326,
"longitude": -99.1332,
"valid": true,
"speed": 45.2,
"heading": 180,
"odometer": 34521.7,
"address": "Av. Reforma 1234, Col. Centro",
"temperature": 22.5,
"battery": 12.6,
"pois": "Sucursal Centro",
"geofences": "Zone North"
},
{
"received_at": "2026-03-15T08:31:15",
"gps_datetime": "2026-03-15T08:31:13",
"imei": "353456789012345",
"person_name": "Carlos Martinez",
"event_code": "10",
"event_name": "Ignition off",
"latitude": 19.4310,
"longitude": -99.1340,
"valid": true,
"speed": 0,
"heading": 180,
"odometer": 34522.1,
"address": "Calle Madero 456, Col. Centro",
"temperature": 23.0,
"battery": 12.4,
"pois": "",
"geofences": ""
}
],
"meta": {
"total": 2,
"limit": 25,
"offset": 0
}
}
Errors
| Code | HTTP | Description |
|---|---|---|
BAD_REQUEST | 400 | Missing required headers. |
VALIDATION_ERROR | 400 | Invalid parameters (e.g. missing device_id, date range exceeds 31 days). |
UNAUTHORIZED | 401 | Invalid or expired JWT / API Key. |
FORBIDDEN | 403 | User lacks required permission. |
RATE_LIMITED | 429 | Exceeded 10 req/min. |
INTERNAL_ERROR | 500 | Unexpected server error. |