Skip to main content

Activity Summary Report

Monthly per-person activity calendar: one row per person, one cell per day, with shift, rest, and absence status.

GET/apidev/v1/reports/cpm/activity-summary
PermissionAPICLI_RPTCPM_RESUMENACTIVIDAD
Rate Limit10 req/min
Cache300s
Max Range1 month

Overview

Returns a calendar-style summary for the selected month. Each person appears once, with a list of daily activity entries that show the worked shift, rest periods, hours worked and rested, kilometers driven, and the day-level status (worked, rest day, or absence). Use it to review attendance and workload across an entire month at a glance.

  • Month view — the period is a single calendar month; days up to the current company date are evaluated, future days are left empty
  • Day status — each day carries a status so you can spot absences, rest days, and breaches without parsing raw timestamps
  • Scope filters — narrow results by person, device, device type, or shift category

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
monthstringYesTarget month in ISO 8601 (e.g. 2026-03 or 2026-03-01). Covers the full calendar month.
driversstringNoAll visibleComma-separated person IDs. Max 500.
devicesstringNoAll visibleComma-separated device IDs. Max 500.
device_typesstringNoComma-separated device type IDs. Max 100.
shift_categoriesstringNoComma-separated shift category IDs. Max 50.
limitintegerNo25Number of people per page (1100).
offsetintegerNo0Number of people to skip for pagination.

Code Examples

curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/reports/cpm/activity-summary?month=2026-03&limit=25"

Response

Response Fields

Each item in data is a person with an activities array of daily entries.

FieldTypeDescription
person_idstringPerson identifier.
person_namestringPerson name.
person_imagestring | nullPerson image URL.
activitiesarrayDaily activity entries for the month (see below).

Activity entry (activities[])

FieldTypeDescription
daynumberDay of the month (131).
datestring | nullDate of the entry.
shift_namestringShift/schedule name.
device_namestringVehicle name.
shift_startstring | nullShift start timestamp.
shift_endstring | nullShift end timestamp.
rest_startstring | nullRest start timestamp.
rest_endstring | nullRest end timestamp.
worked_hoursnumberHours worked.
rested_hoursnumberHours rested.
kms_shiftnumberKilometers during shift.
kms_restnumberKilometers during rest.
statusstringDay status (e.g. worked, rest day, absence).

Example Response

{
"success": true,
"data": [
{
"person_id": "982710394857201700",
"person_name": "Carlos Martinez",
"person_image": "https://cdn.example.com/people/982710394857201700.jpg",
"activities": [
{
"day": 5,
"date": "2026-03-05",
"shift_name": "Morning Shift",
"device_name": "Unit-105",
"shift_start": "2026-03-05T07:00:00",
"shift_end": "2026-03-05T15:00:00",
"rest_start": "2026-03-05T11:00:00",
"rest_end": "2026-03-05T11:30:00",
"worked_hours": 7.5,
"rested_hours": 0.5,
"kms_shift": 145.3,
"kms_rest": 2.1,
"status": "worked"
},
{
"day": 6,
"date": "2026-03-06",
"shift_name": "",
"device_name": "",
"shift_start": null,
"shift_end": null,
"rest_start": null,
"rest_end": null,
"worked_hours": 0,
"rested_hours": 0,
"kms_shift": 0,
"kms_rest": 0,
"status": "absence"
}
]
},
{
"person_id": "982710394857201701",
"person_name": "Laura Hernandez",
"person_image": null,
"activities": [
{
"day": 5,
"date": "2026-03-05",
"shift_name": "Night Shift",
"device_name": "Unit-203",
"shift_start": "2026-03-05T22:00:00",
"shift_end": "2026-03-06T06:00:00",
"rest_start": null,
"rest_end": null,
"worked_hours": 8,
"rested_hours": 0,
"kms_shift": 210.5,
"kms_rest": 0,
"status": "worked"
}
]
}
],
"meta": {
"total": 2,
"limit": 25,
"offset": 0
}
}

Errors

CodeHTTPDescription
VALIDATION_ERROR400Invalid parameters (e.g. malformed month).
UNAUTHORIZED401Missing, invalid, or expired tenant / Authorization / X-API-Key
FORBIDDEN403User lacks required permission.
RATE_LIMITED429Exceeded 10 req/min.
INTERNAL_ERROR500Unexpected server error.