Reporte de Historial de Inicios de Sesión
Sesiones de inicio de sesión de usuarios con duración, dirección IP y plataforma de origen.
GET
/apidev/v1/reports/general/loginsPermisoAPICLI_RPTGT_LOGINS
Límite de solicitudes10 req/min
Caché300s
Rango máximo31 días
Resumen
Devuelve las sesiones de inicio de sesión de usuarios durante el período seleccionado, incluyendo las marcas de tiempo de inicio y de última actividad, la duración de la sesión, la dirección IP del cliente y la plataforma desde la que el usuario inició sesión (web, Android, etc.). Úsalo para revisar la actividad de acceso y la duración de las sesiones.
- Filtro por usuario —
user_idlimita los resultados a un solo usuario - Duración de la sesión —
elapsed_secondsreporta cuánto duró cada sesión
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 | Predeterminado | 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 31 días desde startdate. |
user_id | string | No | — | Filtra por ID de usuario. Longitud máxima 40. |
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. |
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/general/logins?startdate=2026-03-01T00:00:00&enddate=2026-03-15T23:59:59&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/reports/general/logins?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/general/logins",
headers={"Authorization": f"Bearer {token}", "X-API-Key": api_key, "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 |
|---|---|---|
login_time | string | null | Marca de tiempo del inicio de sesión. |
last_login_time | string | null | Marca de tiempo de la última actividad. |
elapsed_seconds | number | Duración de la sesión en segundos. |
user_name | string | Nombre visible del usuario. |
remote_address | string | Dirección IP del cliente. |
origin | string | Plataforma de origen del inicio de sesión. |
Ejemplo de respuesta
{
"success": true,
"data": [
{
"login_time": "2026-03-05T08:00:00",
"last_login_time": "2026-03-05T17:30:00",
"elapsed_seconds": 34200,
"user_name": "Admin User",
"remote_address": "192.168.1.100",
"origin": "web"
},
{
"login_time": "2026-03-05T07:15:00",
"last_login_time": "2026-03-05T18:00:00",
"elapsed_seconds": 38700,
"user_name": "Carlos Martinez",
"remote_address": "10.0.0.45",
"origin": "android"
}
],
"meta": {
"total": 2,
"limit": 25,
"offset": 0
}
}
Errores
| Código | HTTP | Descripción |
|---|---|---|
VALIDATION_ERROR | 400 | Parámetros inválidos (ej. el rango de fechas supera los 31 días). |
UNAUTHORIZED | 401 | tenant / Authorization / X-API-Key faltante, inválido o expirado |
FORBIDDEN | 403 | El usuario carece del permiso requerido. |
RATE_LIMITED | 429 | Se superaron las 10 req/min. |
INTERNAL_ERROR | 500 | Error inesperado del servidor. |