Skip to main content

Maintenance Report

Current maintenance status for your fleet — remaining kilometers, hours until service, and overdue items. A real-time snapshot, no date range required.

GET/apidev/v1/reports/avl/maintenance
PermissionAPICLI_RPTAVL_MANTENIMIENTO
Rate Limit10 req/min (sliding window)
Cache300s (5 min)

Overview

Real-time snapshot of preventive maintenance status. Unlike other AVL reports, this endpoint does not require date parameters — it returns the current state of every maintenance item.

  • Overdue detectionoverdue_only=true filters to items past their service interval
  • Product filteringmaintenance_ids restricts to specific maintenance items
  • Dual tracking — monitors both kilometers and engine hours
No date range

This endpoint returns current maintenance state, not historical data. No startdate/enddate required.


Query Parameters

ParameterTypeRequiredDefaultDescription
devicesstringNoAll visibleComma-separated device IDs. Max 500
maintenance_idsstringNoAllComma-separated maintenance product IDs. Max 100
overdue_onlybooleanNofalseOnly return items past their service interval
limitintegerNo25Records per page (1100)
offsetintegerNo0Records to skip

Code Examples

curl -s "https://$TENANT/apidev/v1/reports/avl/maintenance?limit=50&overdue_only=true" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Response Fields

FieldTypeDescription
maintenance_idstringMaintenance product identifier
maintenance_namestringName of the maintenance item (e.g. "Oil Change")
maintenance_periodstringConfigured service interval description
device_namestringDisplay name of the vehicle/device
last_service_datestring | nullDate of the last completed service. null if never serviced
last_service_costnumber | nullCost of the last completed service
kms_last_servicenumberOdometer reading at last service (km)
kms_currentnumberCurrent odometer reading (km)
kms_remainingnumberKilometers remaining until next service. Negative = overdue
kms_overduebooleanWhether the km-based interval has been exceeded
hrs_last_servicenumberEngine hours at last service
hrs_currentnumberCurrent engine hours
hrs_remainingnumberEngine hours remaining until next service. Negative = overdue
hrs_overduebooleanWhether the hours-based interval has been exceeded

Example Response

{
"success": true,
"data": [
{
"maintenance_id": "104820579600",
"maintenance_name": "Oil Change",
"maintenance_period": "Every 10,000 km",
"device_name": "Truck A-101",
"last_service_date": "2026-01-15",
"last_service_cost": 120.50,
"kms_last_service": 42000,
"kms_current": 53200,
"kms_remaining": -1200,
"kms_overdue": true,
"hrs_last_service": 1800,
"hrs_current": 2150,
"hrs_remaining": 150,
"hrs_overdue": false
},
{
"maintenance_id": "104820579601",
"maintenance_name": "Tire Rotation",
"maintenance_period": "Every 20,000 km",
"device_name": "Truck A-101",
"last_service_date": "2025-11-20",
"last_service_cost": 85.00,
"kms_last_service": 35000,
"kms_current": 53200,
"kms_remaining": 1800,
"kms_overdue": false,
"hrs_last_service": 0,
"hrs_current": 0,
"hrs_remaining": 0,
"hrs_overdue": false
}
],
"meta": {
"total": 12,
"limit": 50,
"offset": 0
}
}

Errors

CodeHTTPDescription
BAD_REQUEST400Missing required headers
VALIDATION_ERROR400Invalid params: non-numeric IDs, limit > 100, > 500 devices
UNAUTHORIZED401Invalid or expired JWT / API Key
FORBIDDEN403User lacks APICLI_RPTAVL_MANTENIMIENTO permission
RATE_LIMITED429Exceeded 10 req/min
INTERNAL_ERROR500Unexpected server error