Saltar al contenido principal

Reporte de Ubicación en Vivo

Analítica de uso de los enlaces de seguimiento — creación, aperturas y cantidad de respuestas.

GET/apidev/v1/reports/gt/live-location
PermisoAPICLI_RPTGT_LIVELOCATION
Límite de solicitudes10 req/min
Caché300s
Rango máximo31 días

Resumen​

Devuelve la analítica de uso de los enlaces de seguimiento compartidos con los clientes finales dentro de un rango de fechas — cuántos enlaces se crearon, se abrieron, se usaron y obtuvieron respuesta, junto con la cantidad de receptores únicos. Usá group_by para agregar por día, producto, causa o dispositivo, y filtrá por dispositivos, conductores, tipos de servicio, causas o geografía.


Solicitud​

Encabezados de la solicitud​

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

Parámetros de consulta​

ParámetroTipoRequeridoPor defectoDescripción
startdatestringSí—Fecha-hora de inicio en ISO 8601 (ej. 2026-03-01T00:00:00).
enddatestringSí—Fecha-hora de fin en ISO 8601. Rango máximo 31 días desde startdate.
devicesstringNo—IDs de dispositivos separados por comas. Máximo 500.
driversstringNo—IDs de conductores separados por comas. Máximo 500.
service_typesstringNo—IDs de tipos de servicio separados por comas. Máximo 100.
causesstringNo—IDs de causas separados por comas. Máximo 100.
countriesstringNo—IDs de países separados por comas. Máximo 50.
departmentsstringNo—IDs de departamentos separados por comas. Máximo 50.
group_byenumNodayModo de agrupación: detail (una fila por link de seguimiento — la vista por defecto del reporte web), day, product, cause, device.
limitintegerNo25Cantidad de registros por página (1–100).
offsetintegerNo0Cantidad de registros a omitir para la paginación.

Ejemplos de código​

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

Respuesta​

Campos de la respuesta​

CampoTipoDescripción
task_numberstring | nullNúmero de tarea.
product_namestringNombre del producto.
product_typestringTipo de producto.
service_typestringTipo de servicio.
causestringNombre de la causa.
device_namestringNombre del vehículo. Presente en detail y device.
receiverstringSolo detail — a dónde se envió el último aviso (correo o teléfono).
channel_namestringSolo detail — canal del último aviso, ya legible (Correo, SMS, WhatsApp, Webhook).
created_atstring | nullSolo detail — cuándo se creó el link de seguimiento.
used_atstring | nullSolo detail — cuándo lo abrió el destinatario. null si nunca lo abrió.
access_countnumber | nullSolo detail — cuántas veces se abrió el link.
status_namestringSolo detail — estado del link, ya legible (Activo, Vencido, Inactivo).
link_pathstringSolo detail — ruta relativa del link compartible (anteponer el origen de tu portal).
link_countnumber | nullSolo modos agrupados — cantidad de links del grupo.
created_countnumberEnlaces creados.
used_countnumberEnlaces usados.
receiver_countnumberReceptores únicos.
hashstringHash del enlace de seguimiento.
total_linksnumberTotal de enlaces generados.
unopenednumberEnlaces no abiertos.
openednumberEnlaces abiertos.
datestring | nullFecha (cuando se agrupa por día).
response_countnumberRespuestas recibidas.
El modo de agrupación cambia la forma de la respuesta

El reporte web abre sin agrupar (group_by=detail): una fila por link de seguimiento, con destinatario, canal, fecha de apertura, cantidad de accesos, estado y el link. Los modos agrupados (day, product, cause, device) devuelven una fila por grupo, con link_count, unopened y opened. Los campos que no aplican al modo pedido vuelven vacíos ('') o null — en ese modo el dato no existe.

Ejemplo de respuesta​

{
"success": true,
"data": [
{
"task_number": "104820580001",
"product_name": "Installation",
"product_type": "Field",
"service_type": "Maintenance",
"cause": "Scheduled",
"device_name": "Truck A-101",
"receiver": "cliente@ejemplo.com",
"channel_name": "Correo",
"created_at": "2026-03-05T08:15:00",
"used_at": "2026-03-05T08:41:00",
"access_count": 2,
"status_name": "Activo",
"link_path": "/seg/6f2b9c1d",
"link_count": null,
"created_count": 3,
"used_count": 2,
"receiver_count": 1,
"hash": "abc123",
"total_links": 3,
"unopened": 1,
"opened": 2,
"date": "2026-03-05",
"response_count": 1
}
],
"meta": {
"total": 1,
"limit": 25,
"offset": 0
}
}

Errores​

CódigoHTTPDescripción
VALIDATION_ERROR400Parámetros inválidos: faltan fechas, rango > 31 días, valores de enum inválidos.
UNAUTHORIZED401tenant / Authorization / X-API-Key faltante, inválido o expirado
FORBIDDEN403El usuario no tiene el permiso requerido.
RATE_LIMITED429Se superaron las 10 req/min.
INTERNAL_ERROR500Error inesperado del servidor.