Skip to main content

Task Kilometers Report

Distance metrics per task grouping — total, average, max, and per-task kilometers.

GET/apidev/v1/reports/gt/gt-kilometers
PermissionAPICLI_RPTGT_KM
Rate Limit10 req/min (sliding window)
Cache300s (5 min)
Max Range31 days

Overview​

Returns distance metrics per task grouping — total, average, and maximum kilometers, plus a per-task ratio — aggregated by a chosen grouping dimension. Use it to track how far tasks travel and compare mileage across devices, drivers, or zones.

  • Grouping — group_by picks the dimension each row represents (see the values below)
  • Date basis — the date range always filters on the task finished date (startdate/enddate)
  • Filtering — narrow results by devices, drivers, service types, providers, and other catalog filters

Request​

Request Headers​

Every request to a protected endpoint requires these headers:

HeaderRequiredDescription
AuthorizationYesBearer token obtained from the Login endpoint. Format: Bearer <token>
X-API-KeyYesCompany integration key provided during onboarding. Format: gtk_xxx...
tenantYesYour assigned tenant domain (default: geotareas.com) — always send your assigned tenant
Content-TypeConditionalapplication/json — required for POST and PUT requests

Query Parameters​

ParameterTypeRequiredDefaultDescription
startdatestringYes—ISO 8601 start date-time
enddatestringYes—ISO 8601 end date-time. Max range 31 days
devicesstringNoAll visibleComma-separated device IDs. Max 500
driversstringNoAllComma-separated driver IDs. Max 500
service_typesstringNoAllComma-separated service type IDs. Max 100
causesstringNoAllComma-separated cause IDs. Max 100
subcausesstringNoAllComma-separated subcause IDs. Max 100
statusesstringNoAllComma-separated status codes. Max 100
device_groupsstringNoAllComma-separated device type IDs (the device_group catalog from Fleet / Devices). Filters tasks to devices of those types; combines with devices as an intersection. Max 100
originsstringNoAllComma-separated origin IDs. Max 100
providersstringNoAllComma-separated provider IDs. Max 100
route_idsstringNoAllComma-separated route IDs. Max 100
operatorsstringNoAllComma-separated operator IDs. Max 100
client_idstringNo—Filter by specific client
account_idstringNo—Filter by specific account
shift_idstringNo—Filter by specific shift
group_byenumNo—Grouping dimension (see below)
limitintegerNo25Records per page (1–100)
offsetintegerNo0Records to skip
How device_groups combines with devices

device_groups is expanded to every device of those types, and if you also send devices, only the devices present in both lists are kept. If that intersection is empty the report returns no rows.

group_by values​

date · month · hour · weekday · department · city · zone · provider · device · device_group · driver · shift · cause · subcause · end_code · origin · telephonist · operator


Code Examples​

curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/reports/gt/gt-kilometers?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&group_by=device&limit=25"

Response Fields​

FieldTypeDescription
group_labelstringDisplay name of the group
group_idstring | nullIdentifier of the group element
total_tasksnumberTotal number of tasks
total_kmsnumberTotal kilometers across all tasks
avg_kmsnumberAverage kilometers per task
max_kmsnumberMaximum kilometers for a single task
kms_per_tasknumberKilometers per task ratio

Example Response​

{
"success": true,
"data": [
{
"group_label": "Truck A-101",
"group_id": "104820579301",
"total_tasks": 47,
"total_kms": 892.3,
"avg_kms": 18.98,
"max_kms": 45.2,
"kms_per_task": 18.98
},
{
"group_label": "Truck B-205",
"group_id": "104820579402",
"total_tasks": 32,
"total_kms": 614.7,
"avg_kms": 19.21,
"max_kms": 52.8,
"kms_per_task": 19.21
}
],
"meta": {
"total": 2,
"limit": 25,
"offset": 0
}
}

Errors​

CodeHTTPDescription
VALIDATION_ERROR400Invalid params: missing dates, range > 31 days, invalid group_by
UNAUTHORIZED401Missing, invalid, or expired tenant / Authorization / X-API-Key
FORBIDDEN403User lacks required permission
RATE_LIMITED429Exceeded 10 req/min
INTERNAL_ERROR500Unexpected server error