Reporte de Proactividad por Tarea
Detalle de cumplimiento a nivel de tarea para una fecha de ejecución específica — resumen + registros individuales de tareas.
/apidev/v1/reports/gt/proactivity-taskResumen
Devuelve el cumplimiento de tareas de una única fecha de ejecución, agrupado por tipo de móvil y detallado tarea por tarea — lo mismo que muestra la pantalla de Proactividad por Tarea. Cada grupo trae su fila de subtotales (summary) y sus filas de tareas (tasks) con las marcas de llamada / asignación / aceptación / finalización y los tiempos transcurridos entre ellas. La fila de Totales del pie de la pantalla viaja en meta.totals. Establecé realtime=true para obtener cifras en vivo, y filtrá por dispositivos, conductores, tipos de servicio, causas, geografía o geocercas.
data ahora es un arreglo de grupos por tipo de móvil. Antes era un único objeto { summary, tasks } armado con el primer grupo solamente, que descartaba en silencio todos los demás tipos de móvil. También se quitaron ocho campos de tarea que el motor del reporte nunca completaba — ver Respuesta.
Solicitud
Encabezados de la solicitud
Every request to a protected endpoint requires these headers:
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token obtained from the Login endpoint. Format: Bearer <token> |
X-API-Key | Yes | Company integration key provided during onboarding. Format: gtk_xxx... |
tenant | Yes | Your assigned tenant domain (default: geotareas.com) — always send your assigned tenant |
Content-Type | Conditional | application/json — required for POST and PUT requests |
Parámetros de consulta
| Parámetro | Tipo | Requerido | Por defecto | Descripción |
|---|---|---|---|---|
execution_date | string | Sí | — | Fecha en ISO 8601 (ej. 2026-03-19). Una sola fecha, no un rango. |
realtime | boolean | No | — | Incluir datos en tiempo real. |
devices | string | No | — | IDs de dispositivos separados por comas. Máximo 500. |
drivers | string | No | — | IDs de conductores separados por comas. Máximo 500. |
service_types | string | No | — | IDs de tipos de servicio separados por comas. Máximo 100. |
causes | string | No | — | IDs de causas separados por comas. Máximo 100. |
subcauses | string | No | — | IDs de subcausas separados por comas. Máximo 100. |
countries | string | No | — | IDs de países separados por comas. Máximo 50. |
departments | string | No | — | IDs de departamentos separados por comas. Máximo 50. |
geofences | string | No | — | IDs de geocercas separados por comas. Máximo 100. |
limit | integer | No | 25 | Cantidad de grupos de tipo de móvil por página (1–100). |
offset | integer | No | 0 | Cantidad de grupos de tipo de móvil a omitir para la paginación. |
limit / offset paginan los grupos de tipo de móvil, y meta.total es la cantidad total de grupos (la fila de Totales no se cuenta). Cada grupo viaja siempre con todas sus tareas.
Ejemplos de código
- cURL
- JavaScript
- Python
curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/reports/gt/proactivity-task?execution_date=2026-03-19&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/gt/proactivity-task?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-task",
headers={"Authorization": f"Bearer {TOKEN}", "X-API-Key": APIKEY, "tenant": TENANT},
params={"execution_date": "2026-03-19", "limit": 25},
)
data = response.json()
Respuesta
data es un arreglo de grupos por tipo de móvil. Un elemento por tipo de móvil (la agrupación "Tipo de móvil" del reporte web), cada uno con su fila de subtotales y sus filas de tareas.
Todas las duraciones vienen en minutos (*_min); los subtotales del grupo además traen el texto ya formateado (*_text, por ejemplo "1h 35m"). Las marcas de tiempo usan YYYY-MM-DDTHH:mm:ss sin zona horaria; una etapa que la tarea nunca alcanzó vuelve como null.
Campos del grupo
| Campo | Tipo | Descripción |
|---|---|---|
device_type | string | Nombre del tipo de móvil / grupo de proactividad. |
device_type_id | string | null | Identificador del tipo de móvil. |
summary | object | Subtotales del grupo — ver abajo. |
tasks | array | Una fila por tarea del grupo — ver abajo. |
Campos del resumen
| Campo | Tipo | Descripción |
|---|---|---|
device_type | string | Nombre del tipo de móvil (igual que el del grupo). |
device_type_id | string | null | Identificador del tipo de móvil. |
tasks_pending | number | Tareas sin asignar. |
tasks_pending_scheduled | number | Tareas sin asignar programadas a futuro. |
tasks_in_progress | number | Tareas en progreso. |
tasks_finished | number | Tareas finalizadas. |
tasks_cancelled | number | Tareas canceladas. |
max_time_unassigned_min / _text | number / string | Mayor tiempo que una tarea estuvo sin vehículo. |
avg_arrival_day_min / _text | number / string | Promedio de llegada del día. |
avg_on_task_min / _text | number / string | Promedio de tiempo en tarea. |
longest_wait_min / _text | number / string | Mayor espera de una tarea (ingreso hasta aceptación). |
avg_km | number | Promedio de kilómetros por tarea. |
Campos del arreglo Tasks
| Campo | Tipo | Descripción |
|---|---|---|
task_id | string | null | Identificador de la tarea. |
task_number | string | null | Número de tarea. |
called_at | string | null | Marca de tiempo del ingreso / llamada. |
assigned_at | string | null | Marca de tiempo de asignación. |
accepted_at | string | null | Marca de tiempo de aceptación. |
finished_at | string | null | Marca de tiempo de finalizaci ón. |
scheduled_at | string | null | Marca de tiempo programada (null si no está programada). |
wait_min | number | Ingreso → aceptación. |
call_to_start_min | number | Ingreso → inicio de la tarea. |
accept_to_start_min | number | Aceptación → inicio de la tarea. |
on_task_min | number | Aceptación → finalización. |
time_unassigned_min | number | Tiempo que la tarea estuvo sin vehículo. |
Fila de Totales
meta.totals refleja la fila de Totales del pie del reporte web. Usa los mismos campos que summary, con device_type: "Totales", y solo los contadores más avg_arrival_day_* / avg_on_task_* tienen significado. Es null cuando el reporte no produjo filas.
Se quitaron device_name, driver_name, service_type, cause, status, started_at, client_name y account_name. El motor del reporte arma el detalle de tareas solo con identificadores, marcas de tiempo y tiempos transcurridos, así que esos ocho campos llegaban siempre vacíos. Para los atributos descriptivos de una tarea, usá Tareas General cruzando por task_id.
Ejemplo de respuesta
{
"success": true,
"data": [
{
"device_type": "Autos",
"device_type_id": "104820570001",
"summary": {
"device_type": "Autos",
"device_type_id": "104820570001",
"tasks_pending": 8,
"tasks_pending_scheduled": 2,
"tasks_in_progress": 3,
"tasks_finished": 35,
"tasks_cancelled": 1,
"max_time_unassigned_min": 95,
"max_time_unassigned_text": "1h 35m",
"avg_arrival_day_min": 22,
"avg_arrival_day_text": "22m",
"avg_on_task_min": 41,
"avg_on_task_text": "41m",
"longest_wait_min": 64,
"longest_wait_text": "1h 4m",
"avg_km": 12.4
},
"tasks": [
{
"task_id": "104820580001",
"task_number": "58231",
"called_at": "2026-03-05T08:52:00",
"assigned_at": "2026-03-05T08:56:00",
"accepted_at": "2026-03-05T09:00:00",
"finished_at": "2026-03-05T10:30:00",
"scheduled_at": null,
"wait_min": 8,
"call_to_start_min": 23,
"accept_to_start_min": 15,
"on_task_min": 90,
"time_unassigned_min": 4
}
]
},
{
"device_type": "Motos",
"device_type_id": "104820570002",
"summary": {
"device_type": "Motos",
"device_type_id": "104820570002",
"tasks_pending": 1,
"tasks_pending_scheduled": 0,
"tasks_in_progress": 1,
"tasks_finished": 7,
"tasks_cancelled": 0,
"max_time_unassigned_min": 40,
"max_time_unassigned_text": "40m",
"avg_arrival_day_min": 13,
"avg_arrival_day_text": "13m",
"avg_on_task_min": 28,
"avg_on_task_text": "28m",
"longest_wait_min": 25,
"longest_wait_text": "25m",
"avg_km": 6.2
},
"tasks": []
}
],
"meta": {
"total": 2,
"limit": 25,
"offset": 0,
"totals": {
"device_type": "Totales",
"device_type_id": null,
"tasks_pending": 9,
"tasks_pending_scheduled": 2,
"tasks_in_progress": 4,
"tasks_finished": 42,
"tasks_cancelled": 1,
"max_time_unassigned_min": 0,
"max_time_unassigned_text": "",
"avg_arrival_day_min": 17.5,
"avg_arrival_day_text": "17m 30s",
"avg_on_task_min": 34.5,
"avg_on_task_text": "34m 30s",
"longest_wait_min": 0,
"longest_wait_text": "",
"avg_km": 0
}
}
}
Errores
| Código | HTTP | Descripción |
|---|---|---|
VALIDATION_ERROR | 400 | Parámetros inválidos: falta execution_date, valores de enum inválidos. |
UNAUTHORIZED | 401 | tenant / Authorization / X-API-Key faltante, inválido o expirado |
FORBIDDEN | 403 | El usuario no tiene el permiso requerido. |
RATE_LIMITED | 429 | Se superaron las 10 req/min. |
INTERNAL_ERROR | 500 | Error inesperado del servidor. |