Proactivity by Device Report
Device-level task compliance for a specific execution date — summary + per-device breakdown.
GET
/apidev/v1/reports/gt/proactivity-devicePermissionAPICLI_RPTGT_PROACTIVIDAD_DISP
Rate Limit10 req/min
Cache60s (1 min)
Request
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
execution_date | string | Yes | — | ISO 8601 date (e.g. 2026-03-19). Single date, not a range. |
realtime | boolean | No | — | Include real-time data. |
devices | string | No | — | Comma-separated device IDs. Max 500. |
drivers | string | No | — | Comma-separated driver IDs. Max 500. |
service_types | string | No | — | Comma-separated service type IDs. Max 100. |
causes | string | No | — | Comma-separated cause IDs. Max 100. |
subcauses | string | No | — | Comma-separated subcause IDs. Max 100. |
countries | string | No | — | Comma-separated country IDs. Max 50. |
departments | string | No | — | Comma-separated department IDs. Max 50. |
geofences | string | No | — | Comma-separated geofence IDs. Max 100. |
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/gt/proactivity-device?execution_date=2026-03-19&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/gt/proactivity-device?execution_date=2026-03-19&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/gt/proactivity-device",
headers={"Authorization": f"Bearer {TOKEN}", "X-API-Key": APIKEY, "tenant": TENANT},
params={"execution_date": "2026-03-19", "limit": 25},
)
data = response.json()
Response
The data field contains summary and devices objects instead of a flat array.
Summary Fields
| Field | Type | Description |
|---|---|---|
total_devices | number | Total devices with activity. |
total_tasks | number | Total task count. |
tasks_finished | number | Finished tasks. |
tasks_pending | number | Pending tasks. |
tasks_in_progress | number | In-progress tasks. |
tasks_cancelled | number | Cancelled tasks. |
compliance_pct | number | Compliance percentage. |
Devices Array Fields
| Field | Type | Description |
|---|---|---|
device_id | string | null | Device identifier. |
device_name | string | Vehicle name. |
driver_name | string | Driver name. |
total_tasks | number | Tasks assigned to device. |
tasks_finished | number | Finished tasks. |
tasks_pending | number | Pending tasks. |
tasks_in_progress | number | In-progress tasks. |
compliance_pct | number | Device compliance percentage. |
Example Response
{
"success": true,
"data": {
"summary": {
"total_devices": 5,
"total_tasks": 47,
"tasks_finished": 35,
"tasks_pending": 8,
"tasks_in_progress": 3,
"tasks_cancelled": 1,
"compliance_pct": 74.47
},
"devices": [
{
"device_id": "104820579301",
"device_name": "Truck A-101",
"driver_name": "Carlos Martinez",
"total_tasks": 12,
"tasks_finished": 10,
"tasks_pending": 1,
"tasks_in_progress": 1,
"compliance_pct": 83.33
}
]
},
"meta": {
"total": 5,
"limit": 25,
"offset": 0
}
}
Errors
| Code | HTTP | Description |
|---|---|---|
BAD_REQUEST | 400 | Missing required headers. |
VALIDATION_ERROR | 400 | Invalid params: missing execution_date, invalid enum values. |
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. |