Reporte de Demanda vs Capacidad
Saturación por turno — minutos de trabajo disponibles versus minutos dedicados a tareas, con un porcentaje de saturación y una clasificación de sobrecarga/subutilización/óptimo para cada turno de conductor.
/apidev/v1/reports/gt/demand-capacityResumen
Este reporte contrasta cuánto tiempo de trabajo tuvo disponible cada turno de conductor contra cuánto de ese tiempo se dedicó realmente a tareas. Para cada turno registrado devuelve los minutos disponibles (recortados a la ventana solicitada y descontando descansos), los minutos usados en tareas finalizadas, un porcentaje de saturación, la cantidad de tareas asignadas, un backlog estimado al cierre y una clasificación del turno como sobreutilizado (sobrecarga), subutilizado (subutilizacion) u óptimo (optimo).
A diferencia de los otros reportes GT Avanzados, los resultados se devuelven con una fila por turno de conductor — no se agrupan por una dimensión elegida. Los parámetros group_by, sla_threshold_minutes y revisit_window_days no aplican a este reporte y se ignoran si se envían. Los filtros GT estándar (dispositivo, conductor, tipo de servicio, etc.) acotan las tareas contadas dentro de cada turno.
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 |
|---|---|---|---|---|
startdate | string | Sí | — | Fecha-hora de inicio en ISO 8601 (ej. 2026-03-01T00:00:00). |
enddate | string | Sí | — | Fecha-hora de fin en ISO 8601. Rango máximo de 92 días desde startdate. |
devices | string | No | — | IDs de dispositivos separados por coma. Máx 500. |
drivers | string | No | — | IDs de conductores separados por coma. Máx 500. |
providers | string | No | — | IDs de prestadores separados por coma. Máx 100. |
service_types | string | No | — | IDs de tipos de servicio separados por coma. Máx 100. |
causes | string | No | — | IDs de causas separados por coma. Máx 100. |
subcauses | string | No | — | IDs de subcausas separados por coma. Máx 100. |
statuses | string | No | — | Códigos de estado de tarea separados por coma. Máx 100. |
device_groups | string | No | Todos | Ids de tipo de dispositivo separados por comas (el catálogo device_group que expone Flota / Dispositivos). Acota las tareas a los dispositivos de esos tipos; se combina con devices como intersección. Máximo 100 |
origins | string | No | — | IDs de orígenes separados por coma. Máx 100. |
route_ids | string | No | — | IDs de rutas separados por coma. Máx 100. |
operators | string | No | — | IDs de operadores separados por coma. Máx 100. |
client_id | string | No | — | ID de un solo cliente. |
account_id | string | No | — | ID de una sola cuenta. |
shift_id | string | No | — | ID de un solo turno. |
limit | integer | No | 25 | Cantidad de registros por página (1–100). |
offset | integer | No | 0 | Cantidad de registros a omitir para la paginación. |
device_groups con devicesdevice_groups se expande a todos los dispositivos de esos tipos, y si además mandás devices, se quedan solo los dispositivos que están en las dos listas. Si esa intersección queda vacía, el reporte no devuelve filas.
group_by,sla_threshold_minutesyrevisit_window_daysson aceptados por el esquema de consulta compartido pero no tienen efecto en este reporte.
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/demand-capacity?startdate=2026-03-01T00:00:00&enddate=2026-03-15T23:59:59&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/gt/demand-capacity?startdate=2026-03-01T00:00:00&enddate=2026-03-15T23:59:59&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/demand-capacity",
headers={"Authorization": f"Bearer {TOKEN}", "X-API-Key": APIKEY, "tenant": TENANT},
params={"startdate": "2026-03-01T00:00:00", "enddate": "2026-03-15T23:59:59", "limit": 25},
)
data = response.json()
Respuesta
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
conjorlabid | number | ID del turno (sesión de trabajo). |
conjorconid | number | ID del conductor asociado al turno. |
connom | string | Nombre del conductor (Sin nombre cuando no se puede resolver). |
conjorinifch | string | Fecha-hora de inicio del turno. |
conjorfinfch | string | Fecha-hora de fin del turno (recortada a la ventana solicitada). |
minutos_disponibles | number | Minutos de trabajo disponibles, descontando descansos. |
minutos_usados_tareas | number | Minutos dedicados a tareas finalizadas durante el turno. |
porcentaje_saturacion | number | Porcentaje de saturación (minutos usados / minutos disponibles * 100). |
clasificacion | string | Clasificación del turno: sobrecarga (sobre), subutilizacion (sub) u optimo (óptimo). |
tareas_asignadas | number | Tareas finalizadas distintas asignadas durante el turno. |
backlog_estimado | number | Tareas estimadas aún pendientes al cierre del día del turno. |
Ejemplo de respuesta
{
"success": true,
"data": [
{
"conjorlabid": 88123,
"conjorconid": 10293,
"connom": "Carlos Martinez",
"conjorinifch": "2026-03-03T08:00:00",
"conjorfinfch": "2026-03-03T17:00:00",
"minutos_disponibles": 480,
"minutos_usados_tareas": 522,
"porcentaje_saturacion": 108.75,
"clasificacion": "sobrecarga",
"tareas_asignadas": 14,
"backlog_estimado": 3
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0
}
}
Errores
| Código | HTTP | Descripción |
|---|---|---|
VALIDATION_ERROR | 400 | Parámetros inválidos: fechas faltantes, rango > 92 días, 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 superó el límite de 10 req/min. |
INTERNAL_ERROR | 500 | Error inesperado del servidor. |